C++ SQL Server ODBC字符串数据,日期时间和二进制插入的右截断
BufLenI使用ODBC将数据插入SQL server 2012(Express)数据库我收到一条截断消息: 读完这篇文章: 我已选中,但未启用区域设置 使用查询插入日期时间时: 在订单中插入(更新的)值('02-06-2014T10:41:49') 一切都很好 当我尝试像这样绑定字符串时: 或 我收到了无情的ODBC错误消息: [Microsoft][ODBC SQL Server驱动程序]字符串数据,右截断 我看过铸件,但我不确定这是否是问题所在 我被难住了 我在这里仔细研究了API调用: 如果只绑定固定长度的整数数据类型,则可以使用代码插入 在这里检查: 似乎转换是隐式的,所以我不明白为什么会出现截断错误 我对二进制日期写入VarBinary(MAX)列也有同样的问题 我使用ODBC驱动程序14,我相信和DSN或连接字符串,我得到了相同的问题C++ SQL Server ODBC字符串数据,日期时间和二进制插入的右截断,c++,sql-server,odbc,C++,Sql Server,Odbc,BufLenI使用ODBC将数据插入SQL server 2012(Express)数据库我收到一条截断消息: 读完这篇文章: 我已选中,但未启用区域设置 使用查询插入日期时间时: 在订单中插入(更新的)值('02-06-2014T10:41:49') 一切都很好 当我尝试像这样绑定字符串时: 或 我收到了无情的ODBC错误消息: [Microsoft][ODBC SQL Server驱动程序]字符串数据,右截断 我看过铸件,但我不确定这是否是问题所在 我被难住了 我在这里仔细研究了API
CREATE TABLE MyFrustratingTable
(
PK INT NOT NULL IDENTITY,
UpdatedDT datetime,
UpdatedU INT,
DataBlob varbinary(MAX),
)
增加:
BufLen是一个INT,它包含pBuf指向的二进制数据的长度。Colsz包含相同的数字,但我已经在任何和所有组合中尝试了较大和较小的数字。您可能希望显示BufLen中的内容,或者它可能是1,因此毫无意义。您仍然没有向我们显示我们需要的信息。在您的第一个SQLBindParameter调用中,ColSz中的数字和*pBufLen中的数字是什么。还有,为什么最后的第二个参数是0-它不应该是。深夜长白天错误。纠正
iRetVal = SQLBindParameter( hStmt, Col, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_C_BINARY, ColSz, 0, pBuf, BufLen, pBufLen )
CREATE TABLE MyFrustratingTable
(
PK INT NOT NULL IDENTITY,
UpdatedDT datetime,
UpdatedU INT,
DataBlob varbinary(MAX),
)