<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      OCI編程基礎篇(六) 斷開數據庫連接

      訪問www.tomcoding.com網站,學習Oracle內部數據結構,詳細文檔說明,下載Oracle的exp/imp,DUL,logminer,ASM工具的源代碼,學習高技術含量的內容。

       OCI程序在結束前需要先斷開與數據庫的連接,這個過程是程序開頭連接到數據庫的逆操作,也分為幾個步驟。

      1. 結束用戶會話,用到函數OCISessionEnd()

      2. 斷開服務器句柄與Oracle數據庫的通信路徑,用到函數OCIServerDetach()

      3. 釋放用戶會話句柄,用到函數OCIHandleFree()。后面所有釋放句柄的操作都用到這個函數。

      4. 釋放服務器句柄。

      5. 釋放服務上下文句柄。

      6. 釋放錯誤句柄。

      7. 釋放OCI環境句柄。

      下面分別看一下這些函數的原型和參數。

      第一個是結束會話函數OCISessionEnd()

      sword OCISessionEnd ( OCISvcCtx *svchp,
          OCIError      *errhp,
          OCISession *usrhp,
          ub4              mode );

      svchp是一個輸入/輸出參數,是包含用戶會話句柄的服務上下文句柄。

      errhp是一個輸入/輸出參數,錯誤句柄,用于返回出錯碼和出錯信息文本。

      usrhp是一個輸入參數,用戶會話句柄,用于解除數據庫用戶認證。

      mode是一個輸入參數,解除認證模式,只能是OCI_DEFAULT模式。

      第二個是斷開服務器通信路徑函數OCIServerDetach()

      sword OCIServerDetach ( OCIServer *srvhp,
          OCIError *errhp,
          ub4         mode );

      srvhp是一個輸入參數,是連接數據庫時創建的服務器句柄。

      errhp是一個輸入/輸出參數,錯誤句柄,用于返回出錯碼和出錯信息文本。

      mode是一個輸入參數,指定操作模式,只能是OCI_DEFAULT模式。

      第三個是釋放句柄函數OCIHandleFree()

      sword OCIHandleFree ( void *hndlp, ub4 type );

      hndlp是一個輸入參數,是用OCIHandleAlloc()函數分配的句柄。

      type是一個輸入參數,指定句柄類型。句柄分配時用什么類型,釋放時就是什么類型。

      下面展示一個斷開數據庫連接的真實示例,看看這些函數都是怎樣調用的。

       

      OCIEnv		*envhp = NULL;		/* OCI環境句柄    */
      OCIError	*errhp = NULL;		/* 錯誤句柄       */
      OCIServer	*svrhp = NULL;		/* 服務器句柄     */
      OCISession	*usrhp = NULL;		/* 用戶會話句柄   */
      OCISvcCtx	*svchp = NULL;		/* 服務上下文句柄 */
      int disconnect_oracle(void){
          sword	rc;
          sb4		ec;
          char    errbuf[512];
      
          rc = OCISessionEnd(
              svchp,
              errhp,
              usrhp,
              OCI_DEFAULT
          );
      
          if (rc != OCI_SUCCESS) {
              OCIErrorGet(errhp, 1, NULL, &ec, errbuf, 512, OCI_HTYPE_ERROR);
              fprintf(stderr, "OCISessionEnd() - [%d] %s\n", ec, errbuf);
              return (-1);
          }
      
          rc = OCIServerDetach(
              svrhp,
              errhp,
              OCI_DEFAULT
          );
      
          if (rc != OCI_SUCCESS) {
              OCIErrorGet(errhp, 1, NULL, &ec, errbuf, 512, OCI_HTYPE_ERROR);
              fprintf(stderr, "OCIServerDetach() - [%d] %s\n", ec, errbuf);
              return (-1);
          }
      
          rc = OCIHandleFree(
              usrhp,
              OCI_HTYPE_SESSION
          );
      
          if (rc != OCI_SUCCESS) {
              fprintf(stderr, "OCIHandeFree() - free session handle error !\n");
              return (-1);
          }
      
          rc = OCIHandleFree(
              svrhp,
              OCI_HTYPE_SERVER
          );
      
          if (rc != OCI_SUCCESS) {
              fprintf(stderr, "OCIHandleFree() - free server handle error !\n");
              return (-1);
          }
      
          rc = OCIHandleFree(
              svchp,
              OCI_HTYPE_SVCCTX
          );
      
          if (rc != OCI_SUCCESS) {
              fprintf(stderr, "OCIHandleFree() - free service context handle error !\n");
              return (-1);
          }
      
          rc = OCIHandleFree(
              errhp,
              OCI_HTYPE_ERROR
          );
      
          if (rc != OCI_SUCCESS) {
              fprintf(stderr, "OCIHandleFree() - free error handle error !\n");
              return (-1);
          }
      
          rc = OCIHandleFree(
              envhp,
              OCI_HTYPE_ENV
          );
      
          if (rc != OCI_SUCCESS) {
              fprintf(stderr, "OCIHandleFree() - free env handle error !\n");
              return (-1);
          }
      
          return (0);
      }
      

       

        

       

      posted @ 2025-08-13 21:06  湯姆花花  閱讀(13)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产蜜臀av在线一区二区| 无套内谢少妇毛片aaaa片免费| 高清无码18| 国产SUV精品一区二区88L| 崇文区| 国模少妇无码一区二区三区| 韩国午夜理伦三级| 亚洲码和欧洲码一二三四| 天堂中文8资源在线8| 国产精品成人观看视频国产奇米 | 草草浮力影院| 日韩精品在线观看一二区| 亚洲精品一区久久久久一品av| 亚洲男人在线天堂| 国内精品一区二区不卡| 鸡泽县| 国产乱老熟女乱老熟女视频| 在线观看的网站| 久99久热这里只有精品| 高清破外女出血AV毛片| 国产日韩一区二区四季| 亚洲国产中文在线有精品| 欧美极品少妇×xxxbbb| 欧美大胆老熟妇乱子伦视频| 色欲国产精品一区成人精品| 国产精品久久精品国产| 99www久久综合久久爱com| 国产中文三级全黄| 欧美大bbbb流白水| 亚洲69视频| 免费无码又爽又刺激高潮虎虎视频 | 成人网站免费观看永久视频下载| 国产激情一区二区三区不卡| 激情 自拍 另类 亚洲| 东京热无码国产精品| 深夜av免费在线观看| 麻豆一区二区中文字幕| 动漫AV纯肉无码AV电影网| 亚洲欧洲精品日韩av| 亚洲欧洲一区二区天堂久久| 祥云县|