<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工具的源代碼,學習高技術含量的內容。

      設置完字段信息之后,就要設置字段數據的入口,這里用到的函數叫做OCIDirPathColArrayEntrySet(),在這之前要進行直接路徑裝載準備工作,用到的函數為OCIDirPathPrepare(),我們分別來看一下這兩個函數。

      sword OCIDirPathPrepare ( OCIDirPathCtx *dpctx,
          OCISvcCtx  *svchp,
          OCIError     *errhp );

      dpctx是一個輸入參數,是直接路徑裝載的上下文句柄。

      svchp是一個輸入參數,是OCI服務句柄。

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

      sword OCIDirPathColArrayEntrySet ( OCIDirPathColArray *dpca,
          OCIError *errhp,
          ub4          rownum,
          ub2          colIdx,
          ub1          *cvalp,
          ub4          clen,
          ub1          cflg );

      dpca是一個輸入/輸出參數,是直接路徑裝載字段數組句柄。

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

      rownum是一個輸入參數,數據的行號,從0開始計數。

      colIdx是一個輸入參數,列的索引,用于構建列參數列表,從0開始。

      cvalp是一個輸入參數,指向列的數值。

      clen是一個輸入參數,列數據長度。

      cflg是一個輸入參數,列的標志位,OCI_DIRPATH_COL_COMPLETE表示提供了整列數據,OCI_DIRPATH_COL_NULL表示列數據為NULL,OCI_DIRPATH_COL_PARTIAL表示提供了部分列數據。

      OCIDirPathPrepare()函數很好理解,就是為列數據到流數據的轉換做準備。

      OCIDirPathColArrayEntrySet()函數從參數中看到,它把數據在這里就劃分好了行和列,就是表的結構,等于把表格中的每一格都用一個數據入口對應起來。

      我們還是用上面創建的表為例,看看怎樣設置數據入口。

       

      OCIEnv       *envhp = NULL;
      OCIError     *errhp = NULL;
      OCIServer    *svrhp = NULL;
      OCISession   *usrhp = NULL;
      OCISvcCtx    *svchp = NULL;
      
      int set_dp_data(void){
          int                  i;
          OCIDirPathCtx        *dpctx;
          OCIDirPathColArray   *dpca;
          OCIDirPathStream     *dpstr;
          ub4                  id[10];
          char                 name[10][32];
          char                 addr[10][256];
      
      
          /* 在這里生成數據,10行 */
          for (i=0; i<10; i++) {
              id[i] = i + 100;
              strcpy(name[i], "AAAAAAAA");
              strcpy(addr[i], "BBBBBBBBBBB");
          }
      
          /* 通過for循環設置每行每個字段的數據入口 */
          for (i=0; i<10; i++) {
              /* 設置每行ID字段的數據地址 */
              if (check_oci_error(errhp,
                  OCIDirPathColArrayEntrySet(dpca, errhp, (ub4)i, (ub2)0,
                      (ub1*)&id[i], 4, OCI_DIRPATH_COL_COMPLETE)
                  ) < 0)
                  return (-1);
      
              /* 設置每行NAME字段的數據地址 */
              if (check_oci_error(errhp,
                  OCIDirPathColArrayEntrySet(dpca, errhp, (ub4)i, (ub2)1,
                      (ub1 *)name[i], (ub4)strlen(name[i]), OCI_DIRPATH_COL_COMPLETE)
                  ) < 0)
                  return (-1);
      
              /* 設置每行ADDR字段的數據地址 */
              if (check_oci_error(errhp,
                  OCIDirPathColArrayEntrySet(dpca, errhp, (ub4)i, (ub2)2,
                      (ub1 *)addr[i], (ub4)strlen(addr[i]), OCI_DIRPATH_COL_COMPLETE)
                  ) < 0)
                  return (-1);
          }
      
          /* 到這里,字段數據入口就設置好了,下一節繼續 */
      
      
          return (0);
      }

       

      設置完數據入口,直接路徑裝載中幾個復雜的部分就操作完了,剩下的就是轉換數據,裝載數據,提交數據了,下一節我們會介紹這些函數。到最后我們會總結一下整個的直接路徑裝載過程,然后通過一個完整的例子,用代碼演示裝載的過程。

       

      posted @ 2025-08-14 21:50  湯姆花花  閱讀(8)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 少妇久久久被弄到高潮| 天堂√最新版中文在线地址| 中文字幕国产精品专区| 婷婷综合缴情亚洲| 国产三级国产精品国产专区| 久青草国产在视频在线观看| 国产99久久精品一区二区| 欧美野外伦姧在线观看| 午夜不卡久久精品无码免费| 人妻中文字幕av资源站| 日韩精品中文字幕亚洲| 国产精品无码久久久久| 青草热在线观看精品视频| 丁香五月婷激情综合第九色| 40岁成熟女人牲交片20分钟| 欧美级特黄aaaaaa片| 国产高清在线不卡一区| 亚洲人ⅴsaⅴ国产精品| 久久夜色精品国产亚洲av| 97欧美精品系列一区二区| 冕宁县| 粉嫩国产一区二区三区在线| 精品国产一区二区三区av性色| 色偷偷亚洲男人的天堂| 亚洲精品一区二区三区小| 国产又色又刺激高潮视频| 起碰免费公开97在线视频| 中文精品无码中文字幕无码专区 | 亚洲VA欧美VA国产综合| 欧美巨大极度另类| av天堂久久精品影音先锋| 99精品久久久中文字幕| 久久午夜无码免费| 亚洲色成人网站www永久下载| 午夜在线不卡| 亚洲精品有码在线观看| 国产精品人成在线播放蜜臀| 成人精品一区日本无码网| 日韩精品 在线 国产 丝袜| 18禁一区二区每日更新| 国产成人欧美综合在线影院|