标量值函数在C ++ ADO(不是.NET)中返回VARCHAR(MAX)

时间:2011-03-15 10:45:29

标签: c++ sql-server adodb

我在MSSQL中创建了一个标量值函数,它返回VARCHAR(MAX)。

我正在使用一个填充了该函数参数的CommandPtr(preCom),我通过以下调用调用该函数:

_variant_t vNull;
vNull.vt = VT_ERROR;
vNull.scode = DISP_E_PARAMNOTFOUND;
HRESULT hr = ptrCom->raw_Execute(&vNull, &vNull, adCmdStoredProc, &record_set);

返回的HRESULT是DB_E_ERRORSINCOMMAND。

如果我将返回值从VARCHAR(MAX)更改为VARCHAR(8000),一切正常。

有没有人知道如何执行返回VARCHAR(MAX)的标量值函数?

谢谢!

1 个答案:

答案 0 :(得分:0)

请参阅Updating an Application to SQL Server Native Client from MDAC

  

当MDAC应用程序连接到SQL Server时,SQL Server 2005中引入的数据类型将显示为与SQL Server 2000兼容的数据类型,如下表所示。

SQL Server 2005 type SQL Server 2000 type
varchar(max)         text

所以我猜你是否可以指定text,它可能有效。