无法使用ODBC驱动程序

时间:2015-12-20 08:12:11

标签: c++ sql-server odbc

我尝试使用ODBC驱动程序将文件存储到SQL服务器中定义为varbinary(max)的列,当我使用SQL服务器驱动程序时,我得到:

  

text,ntext或image指针值与指定的列名冲突,text / image列的insert / updtae未成功

当我使用本机客户端驱动程序时,我得到了

  

字符串数据右截断

两者都是MSDN中记录的相同问题的症状。插入大于400kb的BLOB将触发此错误,任何建议的修复!?

不能选择迁移到OleDB。

我机器上安装的sqlsrv32.dll是文件版本:6.1.7601.17514

1 个答案:

答案 0 :(得分:0)

最后我设法找到正确的方法, 您所要做的只是在'DoFieldExchange'功能中: m_rgODBCFieldInfos [6] .m_nSQLType = -4;

总是应该在查询结束时找到BLOB,所以m_rgODBCFieldInfos ['x']指的是你在这个数组中的m_nFields-1位置,如果你有多个BLOB,你应该询问哪一个是哪个。< / p>

在我的情况下,这个解决方案解决了两个例外:

    来自Native Client 11的
  1.   

    “字符串数据,右截断。”

  2. 来自SQL Server的
  3.   

    “text,ntext或image指针值与指定的列名冲突,text / image列的insert / updtae没有成功”

  4. 干杯:)