gpt4 book ai didi

c++ - ODBC 文档清晰度

转载 作者:行者123 更新时间:2023-11-28 07:51:31 26 4
gpt4 key购买 nike

我在使用 MSDN 的某个文档时遇到问题。我正在使用 C++(或更确切地说是 C)通过 ODBC 连接到 SQL Server 实例。查看 this piece of documentation 底部的代码示例.

请注意示例中有一个名为 AllocParamBuffer() 的函数。该文档描述了它应该做什么,但没有提供任何进一步的帮助。有人可以给我一些指示(没有双关语意)关于我如何为这个特殊情况复制这个函数的定义,或者更好的是,展示它可以完成吗?我遇到了真正的障碍,在其他地方找不到任何帮助。

如有任何帮助,我们将不胜感激。

感谢您的宝贵时间。

最佳答案

您指的是:

// Call a helper function to allocate a buffer in which to store the parameter
// value in character form. The function determines the size of the buffer from
// the SQL data type and parameter size returned by SQLDescribeParam and returns
// a pointer to the buffer and the length of the buffer.
AllocParamBuffer(DataType, ParamSize, &PtrArray[i], &BufferLenArray[i]);

所有这些所做的就是分配一些内存,假设使用 malloc(因为后来的自由调用)来存储输入参数 (PtrArray[i]),然后设置缓冲区长度 BufferLenArray[i](即分配给 PtrArrayp 的内存量[i]).

我们只能猜测它是如何计算要分配多少内存的,因为在这种情况下所需的内存量将根据 SQLDescribeParameter 返回的 DataType 和 ParamSize 而有所不同。猜测是因为所有参数都绑定(bind)为 SQL_C_CHAR,其中一些可能不是字符串列,例如,它们可能是日期。

您需要做的就是 malloc 一些内存,将指针分配给 PtrArray[i] 并设置在 BufferLenArray[i] 中分配的数量。

关于c++ - ODBC 文档清晰度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com