首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLBindParameter返回-1

SQLBindParameter返回-1
EN

Stack Overflow用户
提问于 2017-07-18 19:20:26
回答 1查看 185关注 0票数 0

全,

我的代码如下:

代码语言:javascript
复制
std::wstring ownerName = table->GetTableOwner();
SQLWCHAR *owner_name = new SQLWCHAR[ownerNameLen + 2];
int ownerNameLen = ownerName.length();
SQLLEN cbOwnerName = ownerNameLen == 0 ? SQL_NULL_DATA : SQL_NTS;
ret = SQLBindParameter( stmt_tableProp, 2, SQL_PARAM_INPUT, SQL_C_WCHAR, SQL_WCHAR, ownerNameLen, 0, owner_name, 0, &cbOwnerName );

当owner_name包含实际数据时,对SQLBindParameter的调用成功。但是,如果owner_name为'‘,则调用失败。我得到的错误消息是"HY104 -无效的精度或小数位数值“。

根据MSDN,大小的值应该是列的大小,而不是实际参数的大小。这是正确的吗?或者我应该传递0作为绑定值的长度?

此外,还有使用不同值的this page

有没有人能帮我解释一下?

蒂娅!

EN

回答 1

Stack Overflow用户

发布于 2017-07-18 20:55:29

要传递ownerNameLen值的SqlBindParameter中的参数应包含列大小,而不是可变大小。根据文档,这是您正在使用的列数据类型(SQL_WCHAR)所要求的。下面是文档的链接。寻找"ColumnSize Argument“,自己去看看。

SqlBindParameter doc

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45165343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档