【发布时间】:2010-02-08 22:22:55
【问题描述】:
我正在使用 C++ 和 ADO 将数据添加到 SQL Server 2005 数据库。为 sql_variant 列调用 Recordset Update 方法时,我收到错误 DB_E_ERRORSOCCURRED 和错误消息 Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done. 如果我添加的值为 NULL 一切正常,并且所有值都转到非 sql_variant 类型的字段工作。
有人知道我做错了什么吗?
谢谢
[编辑] 我有更多信息。我们存储的值是空字符串 - ADO 似乎想将其作为 nchar(0) 存储在 sql_variant 中,这当然不是有效的 SQL 数据类型。有没有办法使用 ADO 批处理命令在 sql_variant 中获取空字符串?
【问题讨论】:
-
DB_E_ERRORSOCCURRED 表示存在多个错误,您必须查看 OLEDB 为每个列返回的状态以确定实际问题。 Binding Data Values from Microsoft Developer Network 提供有关绑定功能的信息,Status 上有一节提供有关 DB_E_ERRORSOCCURRED 的详细信息。
标签: c++ sql-server oledb ado