Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法使用ODBC驱动程序插入BLOB对象_C++_Sql Server_Odbc - Fatal编程技术网

C++ 无法使用ODBC驱动程序插入BLOB对象

C++ 无法使用ODBC驱动程序插入BLOB对象,c++,sql-server,odbc,C++,Sql Server,Odbc,我试图使用ODBC驱动程序将文件存储在SQL server中,存储到定义为varbinary(max)的列中,当我使用SQL server驱动程序时,我得到: 文本、ntext或图像指针值与指定的列名冲突,文本或图像列的insert/updtae未成功 当我使用本机客户端驱动程序时 字符串数据右截断 两者都是MSDN中详细记录的同一问题的症状。插入大于400kb的blob将触发此错误,是否有任何建议的修复 迁移到OleDB不是一个选项 安装在我机器上的sqlsrv32.dll是,文件版本:6.1

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

文本、ntext或图像指针值与指定的列名冲突,文本或图像列的insert/updtae未成功

当我使用本机客户端驱动程序时

字符串数据右截断

两者都是MSDN中详细记录的同一问题的症状。插入大于400kb的blob将触发此错误,是否有任何建议的修复

迁移到OleDB不是一个选项


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

最后我找到了正确的方法, 您只需在“DoFieldExchange”功能中执行以下操作: m_rgODBCFieldInfos[6].m_nSQLType=-4

BLOB总是应该在查询的末尾找到,因此m_rgODBCFieldInfos['x']指的是您在该数组中的m_nFields-1位置,如果您有多个BLOB,您应该询问哪个是哪个

在我的案例中,此解决方案解决了两个例外:

  • 从本机客户端11: 字符串数据,右截断

  • 从SQL Server:

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

  • 干杯:)