我在处理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。猜测工作取决于所有参数都绑定为SQL_C_CHAR,并且其中某些参数可能不是字符串列,例如,它们可能是日期。

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

08-07 00:42