OCI接口学习--申请句柄(三)

句柄层次:

1、常用句柄类型:
OCI环境句柄:

      OCI_HTYPE_ENV—它定义所有OCI函数的环境调用,是其他句柄的父句柄。(由OCIEnvInit或OCIEnvCreate生成),环境句柄作为OCIHandleAlloc()函数的parent 参数来分配其他句柄类型
错误句柄:

      OCI_HTYPE_ERROR—作为一些OCI函数的参数,用来记录这些OCI函数操作过程中所产生的错误,当有错误发生时,可用COIErrorGet()来读取错误句柄 中记录的错误信息。

 

服务器环境句柄:

      OCI_HTYPE_SVCCTX—定义OCI调用的服务器操作环境,它包含服务器、用户会话和事务三种句柄。

·一个服务器句柄Server Handle 识别对一个数据库的连接。 
·一个用户会话句柄User Session Handle 定义了一个用户的角色和权限以及函数执行
的操作上下文。 
·一个事务句柄定义了SQL 操作所属的事务。
    在需要更复杂的会话管理的应用程序中,服务上下午句柄必须被显式地分配,并且服务
器句柄和用户会话句柄必须通过 OCIAttrSet()函数被显式地设置到服务上下午句柄中。
OCIServerAttach()函数和OCISessionBegin()函数分别初始化服务器和用户会话句柄。
    当应用程序对数据库做修改时,OCI 自动隐式分配的事务句柄正确地工作。

 

服务器句柄:

      OCI_HTYPE_SERVER—标识数据源,它转换为与服务器的物理连接。
用户会话句柄:

      OCI_HTYPE_SESSION—定义用户角色和权限及OCI调用的执行环境。
事务句柄:

     OCI_HTYPE_TRANS—定义执行SQL操作的事务环境,事务环境中包含用户的会话状态信息。
语句句柄:


Bind/Define句柄:属于语句句柄的子句柄,由OCI库隐式自动生成。用户不需要自己再申请,OCI输入变量存储在bind 句柄中,输出变量存储在定义句柄中 

OCI_HTYPE_STMT—是一个标识SQL语句或PL/SQL块,以及其相关属性的环境。
2、常用句柄属性:

服务器环境句柄属性:(OCI_HTYPE_SVCCTX)
       OCI_ATTR_SERVER—设置/读取服务环境的服务器环境属性
       OCI_ATTR_SESSION—设置/读取服务环境的会话认证环境属性 
       OCI_ATTR_TRANS—设置/读取服务环境的事务环境属性
用户会话句柄属性:(OCI_HTYPE_SESSION)
      OCI_ATTR_USERNAME—设置会话认证所使用的用户名
      OCI_ATTR_PASSWORD—设置会话认证所使用的用户口令
服务器句柄:(OCI_HTYPE_SEVER)
       OCI_ATTR_NOBLOCKING_MODE—设置/读取服务器连接:=TRUE时服务器连接设置为非阻塞方式
语句句柄:(OCI_HTYPE_STMT) 
       OCI_ATTR_ROW_COUNT—只读,为当前已处理的行数,其default=1
       OCI_ATTR_STMT_TYPE—读取当前SQL语句的类型:
       Eg : OCI_STMT_BEGIN
              OCI_STMT_SELECT   OCI_STMT_INSERT    
              OCI_STMT_UPDATE  OCI_STMT_DELETE 
              OCI_ATTR_PARAM_COUNT—返回语句选择列表中的列数

 

PS:这些平时用的较少一点的

描述句柄 :
    描述句柄describe handle  由OCI 描述函数所使用,OCIDescribeAny() 。这个函数获取关于
数据库中的数据库对象的信息(例如, 函数或者过程)。这个函数有一个参数是描述句柄,以及
关于被描述的对象的附加信息。当函数执行完成后,描述句柄就存有关于那个对象的信息。
然后OCI 应用程序可以通过参数描述符的属性获取描述信息。


  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章