天天看點

Oracle調用接口(OCI)源碼剖析(3):關閉資料庫連接配接

概述

繼建立資料庫連接配接和執行SQL語句并擷取結果之後,我們繼續對OCI中關閉資料庫連接配接的源碼進行剖析。該操作主要是由CDbCloseDb函數完成的。

下面對這個函數的源碼進行分析。

OCI中執行關閉資料庫連接配接的源碼剖析

在OCI中,CDbCloseDb函數的代碼如下:

從該函數的代碼實作中,我們可以看到:

1)該函數的輸入參數隻有一個:資料庫連接配接句柄。同時,該函數還調用了三個函數,DoDbFree用于釋放資料庫連接配接,DoRecFree用于釋放資料庫結果集行資料緩沖區,OsRetUB用于釋放作業系統的資料庫記憶體。

2)CDb結構體用于存放資料庫連接配接句柄資料,其聲明如下:

釋放資料庫連接配接的DoDbFree函數的代碼如下:

1)該函數調用OCI底層的函數來分别釋放與資料庫相關的句柄,這些句柄定義在OCIHDBC結構體中。

2)OCIHDBC結構體的聲明如下:

釋放資料庫結果集行資料緩沖區的DoRecFree函數的代碼如下:

1)該函數調用OsRetUB函數來釋放資料緩沖區。

2)結果集行資料結構體的聲明如下:

關閉資料庫連接配接CDbCloseDb函數調用

當我們擷取到了資料庫的傳回結果之後,如果不再需要使用資料庫了,那麼就要調用CDbCloseDb函數關閉資料庫連接配接。

CDbCloseDb函數調用的示例代碼如下:

說明:

1)CDbCloseDb函數的輸入參數是:資料庫句柄指針,資料庫句柄是由CDbCreateDb函數執行之後獲得的。

2)CDbCloseDb函數執行完成之後,還要單獨編寫語句将資料庫句柄指針置為空,防止該指針在後面的流程中被随意使用。