我在处理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]中分配的数量。