概述
繼建立資料庫連接配接和執行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函數執行完成之後,還要單獨編寫語句将資料庫句柄指針置為空,防止該指針在後面的流程中被随意使用。