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 應用程序可以通過參數描述符的屬性獲取描述信息。


  

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