青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

拂曉·明月·彎刀

觀望,等待只能讓出現的機會白白溜走

  C++博客 :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::

OCI(Oracle Call Inte***ce)是由頭文件和庫函數等組成的一套Oracle數據庫應用程序編程接口工具,OCI程序實質上就是用高級語言寫的程序,其特點是內部含有對OCI子函數庫的調用。
OCI程序對開發環境的要求相對較低,只要有C語言的OCI開發工具包和C編譯器就可以,程序設計相比PRO*C復雜了點。

1、創建和初始化OCI環境
首先要在源程序中包含OCI頭文件:#include <oci.h>
OCI環境即OCI函數的工作環境,在調用其他函數之前必須先調用OCIInitialize()和OCIEnvInit()函數創建和初始化OCI環境,其他OCI函數要在這個環境中才能執行。
先定義變量:
OCIEnv**   m_envhp;
OCIError*  m_errhp;
OCIServer* m_srvhp;
OCISvcCtx* m_svchp;
OCIStmt *  m_stmthp;

OCIInitialize(
               (ub4) OCI_DEFAULT,
               (dvoid *)0,
               (dvoid * (*)(dvoid *, size_t))0,
               (dvoid * (*)(dvoid *, dvoid *, size_t))0,
               (void (*)(dvoid *, dvoid *))0
              );

OCIEnvInit(
            (OCIEnv **)&m_envhp,
            OCI_DEFAULT, (size_t)0,
            (dvoid **)0
           );

其中m_envhp為輸出參數,是一個指向OCI環境句柄的指針,OCI_DEFAULT 是OCI環境的初始化模式。OCIEnvInit()函數中的size_t類型變量為分配給用戶的內存數量,dvoid **類型變量指向用戶的內存區域,該區域的大小等于size_t類型變量。
OCI函數中,大量使用OCI定義的數據類型和宏,其定義可參考$ORACLE_HOME/rdbms/demo目錄下的oci.h頭文件。

2、申請句柄
句柄是指向OCI庫所分配的內存區域的指針,該內存區域中的數據由OCI庫維護,應用程序可通過句柄訪問其中的數據。下面是應用程序中最常用的幾個句柄:
OCIHandleAlloc(
                (dvoid *)m_envhp,
                (dvoid **)&m_errhp,
                 OCI_HTYPE_ERROR,
                (size_t)0,
                (dvoid **)0
               );

OCIHandleAlloc(
                (dvoid *)m_envhp,
                (dvoid **)&m_srvhp,
                OCI_HTYPE_SERVER,
                (size_t)0,
                (dvoid **)0
              );

OCIHandleAlloc(
                (dvoid *)m_envhp,
                (dvoid **)&m_svchp,
                 OCI_HTYPE_SVCCTX,
                (size_t) 0,
                (dvoid **)0
              );

OCIHandleAlloc(
                (dvoid *)m_envhp,
                (dvoid **)&m_stmthp,
                 OCI_HTYPE_STMT,
                (size_t)0,
                (dvoid **)0
               );

其中m_errhp為新申請的句柄,m_envhp為它的父環境句柄,OCI_HTYPE_ERROR為句柄類型,表示這是一個錯誤報告句柄,OCI_HTYPE_SERVER表示服務器句柄,OCI_HTYPE_SVCCTX表示服務環境句柄,OCI_HTYPE_STMT表示語句句柄。

存儲在句柄中的數據稱為句柄屬性,所有OCI句柄都具有屬性,可以調用OCIAttrGet()和OCIAttrSet()函數來讀取、設置句柄屬性。

3、連接服務器建立會話
首先調用
OCIServerAttach(m_srvhp, m_errhp, (text *)"", strlen(""), OCI_DEFAULT);
函數建立與指定服務器的連接,text *類型變量為空,表示連接默認數據庫服務,OCI_DEFAULT表示應用程序的操作模式為阻塞模式,在這種方式下,只有當OCI調用完成后才將控制權返回給客戶端應用程序。

然后調用
OCILogon(m_envhp,m_errhp, &m_svchp, (text*)m_szUser,strlen(m_szUser), (text*)m_szPassword, strlen(m_szPassword), (text*)m_szDbName, strlen(m_szDbName));
建立數據庫會話。此函數隱含申請服務器句柄和用戶會話句柄,登錄后,句柄是只讀的,不能再設置句柄屬性。

4、執行SQL語句并處理數據
將要執行的SQL語句copy到szSqlStr字符串中:
snprintf( szSqlStr, sizeof(szSqlStr), "select PASSWORD from USERS where USERNAME=’chen’ ");
執行下列語句:

OCIStmtPrepare(m_stmthp, m_errhp, (text*)szSqlStr, (ub4) strlen(szSqlStr), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT); //準備SQL語句

OCIDefine *defnp0 = (OCIDefine *) 0; //定義輸出變量

OCIDefineByPos( m_stmthp, &defnp0, m_errhp, 1, (dvoid *)szUSERNAME, 100, SQLT_STR, (dvoid *) 0, (ub2 *)0, (ub2 *)0, OCI_DEFAULT); //綁定變量

OCIStmtExecute( m_svchp, m_stmthp, m_errhp, (ub4) 1, (ub4) 0, (OCISnapshot *) NULL,(OCISnapshot *) NULL, (ub4) OCI_DEFAULT); //執行SQL語句

5、結束會話斷開數據庫連接
OCILogoff( m_svchp, m_errhp );

6、斷開與數據源的連接,釋放句柄
OCIServerDetach( m_srvhp, m_errhp, OCI_DEFAULT ); //斷開與數據源的連接
OCIHandleFree((dvoid *) m_stmthp, OCI_HTYPE_STMT); //釋放句柄
OCIHandleFree((dvoid *) m_svchp, OCI_HTYPE_SVCCTX);
OCIHandleFree((dvoid *) m_srvhp, OCI_HTYPE_SERVER);
OCIHandleFree((dvoid *) m_errhp, OCI_HTYPE_ERROR)
3.7生成可執行文件(兩種方法)
(1)同普通的C程序:
   gcc -o exampled –I. –I$(ORACLE_HOME)/precomp/public example.c

(2)利用Oracle自帶的Make文件:
首先將$ORACLE_HOME/rdbms/demo/demo_rdbms.mk文件copy到OCI源程序所在的目錄,將源文件編譯為目標文件:
#gcc –c example.o -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/network/public -I$(ORACLE_HOME)/rdbms/public/ example.c
然后用命令:#make -f demo_rdbms.mk build OBJ*=**ample.o EXE=exampled,exampled就為生成的可執行文件

posted on 2011-03-23 00:10 一路風塵 閱讀(1103) 評論(0)  編輯 收藏 引用 所屬分類: Oracle
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国内成+人亚洲+欧美+综合在线| 欧美成人免费一级人片100| 欧美日韩不卡在线| 亚洲精品资源| 亚洲视频大全| 欧美午夜精品| 亚洲在线成人| 久久se精品一区二区| 国产欧美日韩在线| 先锋资源久久| 快she精品国产999| 亚洲国产视频直播| 欧美交受高潮1| 日韩视频在线一区| 亚洲欧美激情一区| 亚洲免费视频中文字幕| 久久精品成人一区二区三区| 国产一区二区三区四区老人| 久久久噜噜噜久久中文字免| 欧美大片第1页| 一本久久青青| 国产精品一二三视频| 久久精品国产综合精品| 欧美激情女人20p| 夜夜嗨av一区二区三区网站四季av| 欧美日韩国产另类不卡| 亚洲伊人网站| 欧美成人精品在线| 在线亚洲欧美| 国产专区综合网| 欧美国产精品v| 亚洲一区二区三区高清| 欧美成人精品不卡视频在线观看| 日韩亚洲欧美中文三级| 国产精品一级| 欧美成人精品在线视频| 亚洲四色影视在线观看| 久久久欧美一区二区| 99re热精品| 国产精品日韩精品欧美在线 | 亚洲欧美在线一区| 激情久久久久| 国产精品第一区| 久久久久久久久久久久久9999| 亚洲精品国精品久久99热一| 羞羞漫画18久久大片| 亚洲国产视频一区二区| 国产精品嫩草影院av蜜臀| 久久字幕精品一区| 亚洲男人的天堂在线aⅴ视频| 欧美黄免费看| 久久久久久成人| 中文高清一区| 亚洲精品国精品久久99热| 国产三级精品在线不卡| 欧美日韩天堂| 久久综合网色—综合色88| av成人免费观看| 亚洲国产精品激情在线观看| 久久精品国产成人| 亚洲午夜伦理| 日韩视频亚洲视频| 尤物精品国产第一福利三区| 国产精品一二三四区| 欧美另类视频在线| 久久综合婷婷| 欧美在线观看网站| 亚洲男人影院| 一本色道久久综合精品竹菊| 亚洲国产美女精品久久久久∴| 久久尤物视频| 久久精品国产99国产精品澳门| 中文精品一区二区三区| 亚洲精品欧美在线| 国产欧美日韩中文字幕在线| 国产精品久久久久久久久久久久 | 亚洲毛片av| 亚洲国产日韩欧美在线99 | 亚洲美女中出| 亚洲人体大胆视频| 亚洲成人在线免费| 一本大道久久精品懂色aⅴ| 亚洲高清中文字幕| 亚洲成色最大综合在线| 在线观看一区| 国产乱人伦精品一区二区| 欧美亚一区二区| 欧美性理论片在线观看片免费| 欧美日韩精品二区| 欧美日韩一区免费| 欧美视频在线观看 亚洲欧| 欧美日韩精品一区二区三区| 欧美日韩1080p| 欧美猛交免费看| 欧美日韩专区在线| 国产精品久久久久aaaa樱花| 国产精品毛片在线| 国产亚洲一区二区在线观看| 韩国av一区二区三区| 亚洲第一精品久久忘忧草社区| 影音先锋亚洲电影| 亚洲精品欧洲精品| 在线亚洲精品福利网址导航| 亚洲综合色丁香婷婷六月图片| 午夜久久影院| 久久久久久尹人网香蕉| 性欧美办公室18xxxxhd| 亚洲在线免费| 久久精品欧洲| 欧美电影在线播放| 亚洲精品永久免费| 亚洲一区免费| 久久久天天操| 欧美激情中文字幕一区二区| 国产精品久久久久9999吃药| 国产综合色在线视频区| 亚洲欧洲另类国产综合| 在线视频一区观看| 欧美在线三区| 亚洲第一在线视频| 亚洲视频www| 久久精品视频免费| 欧美日韩性生活视频| 国产精品系列在线播放| 激情婷婷亚洲| 亚洲午夜精品| 麻豆国产精品一区二区三区| 亚洲精品国产品国语在线app| 日韩视频免费| 在线中文字幕不卡| 久久一区二区三区av| 欧美日韩三级在线| 影音先锋久久精品| 亚洲视屏一区| 欧美刺激午夜性久久久久久久| 夜夜精品视频一区二区| 久久一本综合频道| 国产精品亚洲一区二区三区在线| 1000部精品久久久久久久久| 亚洲一级片在线观看| 免费一级欧美片在线观看| 中文国产成人精品久久一| 美女日韩在线中文字幕| 国产精品日韩一区| 999亚洲国产精| 午夜在线a亚洲v天堂网2018| 欧美成人69| 一区二区三区高清在线| 久久久久久欧美| 国产精品久久久久久户外露出| 亚洲韩国精品一区| 久久久久久久一区二区三区| 国产亚洲午夜| 亚洲欧美大片| 91久久久亚洲精品| 久久综合久色欧美综合狠狠| 国产日韩综合一区二区性色av| 在线视频欧美精品| 亚洲黄色天堂| 免费亚洲一区| 亚洲福利视频网站| 久久夜色精品一区| 午夜精品久久99蜜桃的功能介绍| 欧美色欧美亚洲另类二区 | 亚洲综合国产精品| 亚洲伦理一区| 欧美交受高潮1| 亚洲精品中文在线| 亚洲福利视频在线| 欧美成年人视频网站| 亚洲国产高潮在线观看| 美女视频黄 久久| 久久久久国产免费免费| 欧美午夜精品电影| 一本色道久久综合亚洲精品不卡| 99re6热在线精品视频播放速度 | 亚洲国产高清在线观看视频| 欧美国产成人精品| 欧美日韩天天操| 欧美中文字幕久久| 久久中文久久字幕| 99视频一区二区| 午夜在线a亚洲v天堂网2018| 一区在线免费| 最近看过的日韩成人| 国产精品久久999| 久久久国产一区二区三区| 免费h精品视频在线播放| 一区二区三区久久网| 亚洲欧美美女| 亚洲黄色三级| 亚洲手机视频| 亚洲电影下载| 一区二区三区日韩欧美| 国产一区日韩欧美| 亚洲三级电影在线观看| 国产欧美午夜| 亚洲国内精品| 国产一区二区三区丝袜| 亚洲日本精品国产第一区|