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

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

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流程差不多,只是申请的句柄不一样。主要也可分为四步:第一,申请环境句柄;第二,在环境句柄上申请错误句柄;第三,在环境句柄上申请上下文句柄;第四,调用函数建立连接。请看下面示例:

