我在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)的标量值函数?
谢谢!
答案 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
,它可能有效。