ODBC文档清晰度

时间:2012-12-02 20:29:06

标签: c++ sql c function odbc

我在使用MSDN的某些文档时遇到问题。我使用C ++(或C,而不是)通过ODBC连接到SQL Server实例。请参阅this piece of documentation底部的代码示例。

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

非常感谢任何帮助。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

你指的是:

// 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,其中一些可能不是字符串列,例如,它们可能是日期。

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