OCI指南—OCIDefineByPos()函数

OCIDefineByPos()函数

1. 作用:建立所选字段中的一个字段和输出缓冲区的结合
2. 函数原型:

Sword	OCIDefineByPos(	
    OCIStmt	    *stmtp,
	OCIDefine	**defnpp,
    OCIError	*errhp,
    Ub4	        position,
    Dvoid	    *valuep,
    Sb4	        value_sz,
    Ub2	        dty,
    Dvoid	    *indp,
    Ub2	        *rlenp,
    Ub2	        *rcodep,
    Ub4	        mode
);

3. 参数分析

stmtp:请求 SQL 查询的语句句柄。

defnpp:指向定义句柄指针的指针。如果这个参数为 NULL,这个函数将会隐式地分配定义句柄。在重新定义的情况下,一个非NULL 句柄可以传递到这个参数。这个句柄用来保存某个字段的定义信息。

errhp: 错误句柄,当有错误发生时,我们可以将该错误句柄传递至 OCIErrorGet()函数获取诊断信息。

position:这个值在所选字段中的位置。位置是从 1 开始的,并且从左向右递增。

valuep:指向 dty 参数所指明的类型的缓冲区或者缓冲区数组的指针。对于 LOB 字段,缓冲区指针必须是OCILobLocator 类型的 LOB 定位符的指针。

value_sz: valuep 指针所指向的缓冲区的大小。

dty:数据类型。用于指明所选字段如何转换为程序变量。

indp:指示器变量或者数组的指针。对于标准变量,该指针为指向 sb2 类型的的指针或者是一个 sb2 类型的数组。

rlenp:指向获取到的数据的长度的数组的指针。Rlenp 中的每个元素都是数据的长度。

rcodep:字段级返回代码数组的指针。

mode:模式。有效的模式为:

·OCI_DEFAULT—默认模式。

·OCI_DEFINE_SOFT.

        ·OCI_DYNAMIC_FETCH.

4. 注释

这个函数定义一个将要从 Oracle  服务器中获取数据的输出缓冲区。这个函数会为所选字段隐式地分配定义句柄。如果*defnpp  为一个非空指针,OCI  假设这个指针指向一个之前通过 OCIHandleAlloc()函数或者 OCIDefineByPos()函数分配的有效的句柄。

获取 LOB 字段类型时,缓冲区指针必须是一个指向 OCILobLocator 类型的 LOB 定位符的指针,通过 OCIDescriptorAlloc()函数来分配它。LOB 字段返回 LOB 定位符,而不是 LOB 数据。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值