[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

DM API和OCI编程方式比较

作者: Zctitan,  出处:IT专家网, 责任编辑: 唐小若, 
2008-09-03 09:39
  API是达梦数据库最低层的客户端接口,OCI则是ORACLE数据库最低层的客户端接口。前阵子我们根据客户需求按照ORACLE中OCI的标准开发出了一套达梦的OCI接口函数,为了方便大家了解和使用OCI,本文针对API和OCI这两种接口在连接、参数绑定、执行和结果集绑定等基本操作上进行对比,希望对大家有所帮助。

  【IT专家网独家】

  1. 架构

  a) API

  达梦的API架构采用的是ODBC标准中的架构,主要分为三层。顶层为环境句柄层,中层为连接句柄层,底层为语句句柄层。这三层的关系明确,下层隶属于上层,而每层之间又互不干扰。位于顶层的环境句柄是相互独立的,连接句柄从环境句柄上分配以后再建立连接,然后从连接上分配语句句柄用来执行SQL语句。一个环境句柄可以分配多个连接句柄,这些连接句柄相互独立,同样,从一个连接句柄上又可以分配多个语句句柄。下面用图来表示这三者的关系。 

达梦的API架构

  b) OCI

  达梦OCI的架构则比较简单,它以环境句柄为主导,其它的一切句柄都从环境句柄上分配,而环境句柄上的上下文句柄和连接句柄只允许被分配一个实例。

达梦的API架构

   2. 连接操作

  a) API

  达梦API在进行连接数据库操作时,主要可分为三步:第一,申请环境句柄;第二,在环境句柄上申请连接语句;第三,调用连接函数建立连接。请看下面示例:

    dm_henv henv = NULL;//环境句柄
  dm_hdbc hdbc = NULL;//连接句柄
  dm_hstmt hstmt = NULL;//语句句柄
  /*创建API运行环境*/
  dm_api_init();
  /*申请一个环境句柄*/
  dm_alloc_env(&henv);
  /*在环境句柄上面申请一个连接句柄*/
  dm_alloc_connect(henv,&hdbc);
  /*跟数据库接立连接*/
  dm_login_port(hdbc, "localhost", "SYSDBA", "SYSDBA", 12345);
  /*连接成功以后,才能在连接句柄上申请语句句柄*/
  dm_alloc_stmt(hdbc,&hstmt);
  /*在这里可以使用语句句柄执行SQL了*/
  /*在处理完工作任务以后,可以做下面断开的操作*/
  /*释放语句句柄*/
  dm_free_stmt(hstmt);
  /*断开与数据库之间的连接*/
  dm_logout(hdbc);
  /*释放连接句柄*/
  TAPIc(hdbc, dm_free_connect(hdbc));
  /*释放环境句柄*/
  TAPIv(henv, dm_free_env(henv));

  b) OCI

  达梦OCI的连接跟API流程差不多,只是申请的句柄不一样。主要也可分为四步:第一,申请环境句柄;第二,在环境句柄上申请错误句柄;第三,在环境句柄上申请上下文句柄;第四,调用函数建立连接。请看下面示例:

共6页。 1 2 3 4 5 6 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅