WEB开发网
开发学院数据库Oracle DM API和OCI编程方式比较 阅读

DM API和OCI编程方式比较

 2008-09-03 12:50:56 来源:WEB开发网   
核心提示: 4. 执行a) APIAPI在执行一条语句时,有两种方式:一种是准备后执行;另一种是直接执行,DM API和OCI编程方式比较(5),在准备执行时要先调用dm_prepare来准备,随后再调用dm_exec执行准备好的语句,该例子中结果集有两列,第一列为整数,直接执行是调用dm_direc

4. 执行

a) API

API在执行一条语句时,有两种方式:一种是准备后执行;另一种是直接执行。在准备执行时要先调用dm_prepare来准备,随后再调用dm_exec执行准备好的语句。直接执行是调用dm_direct_exec函数,直接用语句作为参数传入该函数里面。

b) OCI

OCI的执行只有一种方式,必需先调用OCIStmtPrepare来准备语句,再调用OCIStmtExecute来执行准备好的语句,当然,OCI和API在执行准备好的语句时,都可以一次准备,多次执行。

5. 结果集绑定

a) API

绑定结果集是客户端的重要功能,在API里面,支持列绑定和行绑定两种方式,并且允许一次性返回多行,但是绑定函数只有一个dm_bind_column函数,它在列绑定时,value参数是实际的缓冲区指针;而在行绑定的情况下给的则是一个偏移值,真正的缓冲区需要通过描述符来设置。行绑定要比列绑定复杂得多,可以参看ODBC的行绑资料来了解详情。在要求一次获取返回多行时,还需要设置语句句柄的DM_ATTR_ROW_ARRAY_SIZE属性值来达到这个目的。dm_bind_column函数的注释如下:

   dm_bool
  dm_bind_column(
  dm_hstmtdmstmt,/*语句句柄*/
  unsignedshortcolid,/*结果集列的位置,从1开始*/
  unsignedinttype,/*列的达梦服务器数据类型*/
  intsql_c_type,/*列的C数据类型*/
  void*value,/*数据缓冲区指针*/
  dm_int3264len,/*单个值的最大长度*/
  dm_int3264*outlen,/*实际的返回长度*/
  unsignedshortptr_len/*len_or_ind指针的大小*/
  );

下面举一个简单的列绑定例子,该例子中结果集有两列,第一列为整数,第二列为字符串。

上一页  1 2 3 4 5 6  下一页

Tags:DM API OCI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接