标量值函数在 C++ 中返回 VARCHAR(MAX) ADO(非 .NET)
我在 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) 的标量值函数?
谢谢!
I created a scalar-valued function in MSSQL that returns VARCHAR(MAX).
I am using a CommandPtr (preCom) filled with the parameters for the function, and I am calling the function with the following call:
_variant_t vNull;
vNull.vt = VT_ERROR;
vNull.scode = DISP_E_PARAMNOTFOUND;
HRESULT hr = ptrCom->raw_Execute(&vNull, &vNull, adCmdStoredProc, &record_set);
The returned HRESULT is DB_E_ERRORSINCOMMAND.
If I change the returned value from VARCHAR(MAX) to VARCHAR(8000) everything works fine.
Does anyone have any idea how do I execute a scalar-valued function that returned VARCHAR(MAX) ?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请参阅从 MDAC 将应用程序更新到 SQL Server Native Client:
所以我猜如果你可以指定
text
,它可能会起作用。See Updating an Application to SQL Server Native Client from MDAC:
So I'd guess if you can specify
text
, it might work.