BufLenI ano使用ODBC将数据插入SQL Server 2012(Express)数据库我收到截断消息:
看完之后:
"String data, right truncation" warning on a select statement
我已检查并且未启用区域设置
当我使用查询插入日期时间时:
INSERT INTO订单(UpdatedDT)VALUES('02 -06-2014T10:41:49') 一切都很好。
当我尝试绑定这样的字符串时:
iRetVal = SQLBindParameter( hStmt, Col, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_C_CHAR, ColSz, 0, pBuf, BufLen, pBufLen) )
或
iRetVal = SQLBindParameter( hStmt, Col, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_C_BINARY, ColSz, 0, pBuf, BufLen, pBufLen )
我收到了无情的ODBC错误消息:
[Microsoft] [ODBC SQL Server驱动程序]字符串数据,右截断
我看过铸件,但我不确定这是不是问题
http://msdn.microsoft.com/en-us/library/ms187928.aspx
我很难过。
我在这里仔细研究了API调用:
http://msdn.microsoft.com/en-us/library/ms710963%28v=vs.85%29.aspx
如果我只绑定固定长度的整数数据类型
,我可以插入我的代码点击此处:
http://msdn.microsoft.com/en-us/library/ms187928.aspx
似乎转换是隐式的,所以我不明白为什么会出现截断错误。
我在将二进制日期写入VarBinary(MAX)列时遇到了同样的问题。
我正在使用ODBC驱动程序14我相信和DSN或连接字符串我得到同样的问题。
CREATE TABLE MyFrustratingTable
(
PK INT NOT NULL IDENTITY,
UpdatedDT datetime,
UpdatedU INT,
DataBlob varbinary(MAX),
)
增加:
BufLen是一个INT,它包含pBuf指向的二进制数据的长度。 Colsz包含相同的数字,但我已经在任何和所有组合中尝试过更大和更小的数字。