因此,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()
来获取实际字符串长度)但这种方法不起作用(读取无效内存)。
是否有针对分散缓冲区的解决方案?