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

发布于 2024-10-23 12:13:57 字数 449 浏览 1 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挥剑断情 2024-10-30 12:13:57

请参阅从 MDAC 将应用程序更新到 SQL Server Native Client

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

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

所以我猜如果你可以指定text,它可能会起作用。

See Updating an Application to SQL Server Native Client from MDAC:

When MDAC applications connect to SQL Server, the data types introduced in SQL Server 2005 will appear as SQL Server 2000-compatible data types as shown in the following table.

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

So I'd guess if you can specify text, it might work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文