OCI - 使用带有分散缓冲区的OCIIOV

时间:2014-01-29 16:16:40

标签: c oracle oci

因此,OCI(Oracle用户界面)有一个名为OCIIOV的数据结构,它基本上是一个缓冲区及其长度。

偶数给出一个例子(整个例子:http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci05bnd.htm#BABGDJDD

char  buf_1[NUM_BIND][LENGTH_DATE], 
char  buf_2[NUM_BIND * 2][LENGTH_DATE], 


/* The define buffers */
bvec[0].bfp = buf_1[0];                       /* Buffer address of the data */
bvec[0].bfl = NUM_BIND*LENGTH_DATE;           /* Size of the buffer */

在上面的示例中,char缓冲区是连续的但我想使用分散的内存(所以我不会分配这么多数据,而只是我实际需要的数量)。有办法吗?我尝试使用OCIBindByPos最大缓冲区大小(我认为它会strlen()来获取实际字符串长度)但这种方法不起作用(读取无效内存)。

是否有针对分散缓冲区的解决方案?

0 个答案:

没有答案