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

拂曉·明月·彎刀

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

  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 一路風塵 閱讀(1093) 評論(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>
            国语精品中文字幕| 欧美在线www| 在线观看欧美激情| 亚洲欧美在线aaa| 亚洲天堂成人在线观看| 欧美连裤袜在线视频| 欧美福利小视频| aaa亚洲精品一二三区| 欧美区二区三区| 国产精品播放| 欧美日韩成人在线| 日韩一级精品| 免费亚洲电影| 欧美日韩亚洲不卡| 久久久久一区二区| 国产日韩欧美综合一区| 亚洲国产精品第一区二区| 这里只有精品丝袜| 亚洲人www| 久久av一区二区| 亚洲少妇一区| 免费欧美日韩| 久久久久在线观看| 国产精品国产三级国产普通话99| 毛片一区二区三区| 国产精品视频999| 亚洲电影免费在线| 国产精品自在在线| 这里只有精品电影| 亚洲最新在线| 欧美国产日韩一区二区在线观看| 午夜精品偷拍| 欧美人成在线视频| 欧美激情一区二区三区不卡| 精品不卡在线| 久久精品中文字幕一区| 欧美一区二区国产| 国产精品久久久久aaaa| 一本到高清视频免费精品| 99精品久久| 欧美精品一线| 日韩一二在线观看| 中文av一区特黄| 欧美乱妇高清无乱码| 亚洲品质自拍| aa亚洲婷婷| 欧美日韩精品免费观看视一区二区 | 亚洲精品一区二区三| 久久这里只有| 欧美激情乱人伦| 亚洲精品永久免费| 欧美高清视频一区二区三区在线观看| 欧美超级免费视 在线| 在线观看av不卡| 免费视频一区二区三区在线观看| 欧美成人免费网站| 亚洲美女中文字幕| 欧美日韩亚洲网| 亚洲免费视频一区二区| 欧美与欧洲交xxxx免费观看| 国产综合香蕉五月婷在线| 久久综合网络一区二区| 亚洲伦理久久| 久久香蕉精品| 免费观看成人www动漫视频| 亚洲少妇自拍| 亚洲精品国产精品国自产观看| 99精品热视频| 久久夜色精品国产亚洲aⅴ| 黑人操亚洲美女惩罚| 午夜精品亚洲| 国产精品99久久久久久白浆小说 | 亚洲一区二区三区三| 久久久人成影片一区二区三区观看| 欧美裸体一区二区三区| 久久成人精品无人区| 欧美成人精品不卡视频在线观看 | 在线精品国产欧美| 欧美在线关看| 一区二区三区鲁丝不卡| 欧美华人在线视频| 亚洲精品一区二区三区不| 久久精品主播| 亚洲视频你懂的| 欧美大片va欧美在线播放| 亚洲欧洲在线免费| 欧美特黄视频| 欧美伊人久久| 亚洲啪啪91| 久久av资源网站| 亚洲国产中文字幕在线观看| 国产精品高潮呻吟| 久久久精品免费视频| 亚洲精品中文字幕在线| 欧美一区二区在线视频| 亚洲精品日韩精品| 国产一区二区三区电影在线观看| 欧美高清一区| 久久精品国产第一区二区三区最新章节| 欧美国产精品人人做人人爱| 亚洲欧美三级伦理| 亚洲精品视频一区二区三区| 国产一区二区看久久| 欧美日韩另类一区| 久热精品视频在线| 亚洲欧美在线aaa| 亚洲精选国产| 欧美岛国在线观看| 久久九九全国免费精品观看| 亚洲影视在线播放| 亚洲国产一区二区视频| 国产一区二区三区四区五区美女 | 亚洲欧美另类综合偷拍| 亚洲精品色婷婷福利天堂| 亚洲最新视频在线播放| 欧美在线亚洲在线| 亚洲精品日韩精品| 亚洲精品字幕| 99精品视频免费观看视频| 国产精品久久久久毛片大屁完整版| 看欧美日韩国产| 国产综合精品一区| 午夜精品久久久久99热蜜桃导演| 99视频一区| 欧美日韩三级一区二区| 日韩视频久久| 久久se精品一区二区| 国产精品美女在线观看| 午夜精品久久久久久久99黑人| 欧美日韩在线大尺度| 久久视频这里只有精品| 国产综合一区二区| 欧美日韩综合在线免费观看| 美女999久久久精品视频| 先锋影音久久久| 亚洲欧洲在线一区| 在线播放豆国产99亚洲| 亚洲一区二区网站| 久久五月婷婷丁香社区| 欧美日韩国产bt| 亚洲国产精品视频一区| 亚洲国产精品123| 免费短视频成人日韩| 欧美在现视频| 久久久久成人网| 久久精品视频播放| 老司机久久99久久精品播放免费| 久久精品成人一区二区三区| 久久久久久亚洲精品中文字幕| 久久久久久亚洲综合影院红桃| 老司机午夜精品视频在线观看| 麻豆91精品91久久久的内涵| 欧美风情在线观看| 欧美日韩一区二区三区四区在线观看 | 欧美成黄导航| 欧美欧美午夜aⅴ在线观看| 亚洲一区二区伦理| 亚洲成色999久久网站| 亚洲中字黄色| 亚洲综合大片69999| 国产精品成人免费视频| 亚洲精品一区二区三区在线观看 | 国产精品久久久久99| 欧美va天堂在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美亚洲一区二区在线观看| 亚洲欧美春色| 欧美一区二区三区在线看| 亚洲欧美日韩国产综合在线| 亚洲国产一成人久久精品| 国内精品伊人久久久久av一坑| **性色生活片久久毛片| 欧美黑人国产人伦爽爽爽| 久久亚洲欧美国产精品乐播| 老司机aⅴ在线精品导航| 亚洲欧洲中文日韩久久av乱码| 亚洲综合电影| 欧美国产免费| 国产精品亚洲综合| 欧美另类极品videosbest最新版本| 亚洲一区影院| 亚洲黄色在线| 亚洲二区视频在线| 久久精品日韩欧美| 亚洲视屏在线播放| 欧美性大战久久久久久久| 女同性一区二区三区人了人一| 欧美一区二区三区视频免费播放| 亚洲第一天堂av| 欧美1级日本1级| 亚洲中字在线| 在线日韩成人| 国产欧美一区二区白浆黑人| 欧美性jizz18性欧美| 免费看黄裸体一级大秀欧美| 免费亚洲婷婷| 国产精品午夜电影| 亚洲精品一区二区三区四区高清 | 激情亚洲网站| 亚洲乱码国产乱码精品精天堂|