0

我有一个通过输出参数返回 XML 数据的 sql server 存储过程(sql server 2005)。要连接到此数据库,首选选项是 System DSN,因此我使用的是 ODBC 类 - ODBCConnection、ODBCCommand。问题是无论我使用什么数据类型,NChar、char、Text、NText、VarChar、NVarChar,当我调用 ODBCCommand::ExecuteNonQuery 时,我总是得到同样的错误:

“数据类型 0x63 是不推荐使用的大对象或 LOB,但被标记为输出参数。不推荐使用的类型不支持作为输出参数。请改用当前的大对象类型。”

我正在调用存储过程,如下所示:

     OdbcCommand cmd = new OdbcCommand("{CALL FetchTasks(?)}", conn);
     cmd.CommandType = CommandType.StoredProcedure;

     OdbcParameter param1 = new OdbcParameter();
     param1.ParameterName = "@TaskXML";
     param1.OdbcType = OdbcType.Text; //I have tried nchar, char, text, ntext
     param1.Size = 2048;
     param1.Value = "<Root></Root>";
     param1.Direction = ParameterDirection.Output;
     cmd.Parameters.Add(param1);

     cmd.ExecuteNonQuery();

无论如何我可以让它工作吗?

在此先感谢-尼尔。

4

1 回答 1

0

实际上,您需要检查返回xml数据的表列的数据类型,无论其数据类型是xml还是其他?这取决于这一点。

于 2013-10-25T12:07:43.633 回答