GCI 接口对于行绑定的模式支持相对灵活,绑定时根据内存块申请策略不同,设定不同
的偏移量。
典型的有:
1.行集只包含数据,空值指示,长度指示缓存各自独立申请数组
A
B
C
i ndA
i ndB
i ndC
r l enA
r l enB
r l enC
此种情况下,
数据缓存按行申请一个内存快,
长度指示与空值指示各自申请对应的
缓存数组,空值指示和长度指示与列式绑定申请同样的内存。
此时GCIBindArrayOfStruct 或GCIDefineArrayOfStruct 调用参数为:
GCIDefineArrayOfStruct(define,pos,rowsize,2,2,0);或
GCIDefineArrayOfStruct(define,pos,rowsize,0,0,0);
2.行集包含空值指示和长度指示
此时,内存申请是数据和空值+长度指示的行集数组,只有一个内存块,偏移量设定统
一为行长(包含空值和长度指示)
设定偏移量:GCIDefineArrayOfStruct(define,pos,rowsize,rowsize,rowsize,0);
3.行集,空值指示,长度指示各自申请缓存块
此时,内存申请总计为三块,分别式行集,空值指示缓存以及长度指示缓存块。
设定偏移量:GCIDefineArrayOfStruct(define,pos,rowsize,6,6,0);
注:GCI 接口在行绑定模式中,数据集的行集是必须分配一整块内存的。只有空值和长度指
示内存块可以灵活的进行设定。
6 数据库对象访问
Oracle 数据库对象访问类似于ODBC 的目录函数,
主要用于获取数据库对象的描述信息。
GCI 接口目前支持四种类型的访问,分别是:
l
GCI_PTYPE_PKG:包对象访问
l
GCI_PTYPE_PROC:存储过程或函数对象的访问
l
GCI_PTYPE_TABLE:表对象
l
GCI_PTYPE_VIEW:视图
r ow
buf poi nt er
A
B
C
i ndA
i ndB
i ndC
r l enA
r l enB
r l enC
r ow
buf poi nt er
A
B
C
i ndA
i ndB
i ndC
r l enA
r l enB
r l enC
A
B
C
i ndA
i ndB
i ndC
r l enA
r l enB
r l enC