中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      Solaris下PRO*C和OCI程序設計分析與比較

      時間:2024-08-18 19:51:44 計算機畢業論文 我要投稿
      • 相關推薦

      Solaris下PRO*C和OCI程序設計分析與比較

      摘要文章對Solaris平臺下,開發基于Oracle數據庫的C程序的兩種方法——PRO*C和OCI進行了研究,詳細分析了這兩種方法的開發流程,給出了較為具體的應用程序例子,并對兩者的性能進行了比較。
      關鍵詞Solaris,Oracle,PRO*C,OCI
      1引言
      數據庫在軟件開發中的應用越來越廣泛,其中,Oracle可說是性能最強大、最穩定的數據庫之一,大量的軟件開發選擇了Oracle。在開發語言的選擇上,C語言以其靈活、高效吸引了大批的軟件開發人員。這兩者的強強聯合也必具有較高的性能,在實際中有廣泛的應用。這就是PRO*C和OCI程序設計。
      Oracle常常應用在服務器中,Solaris又是服務器的首選平臺,因此,本文主要介紹PRO*C和OCI程序設計在Solaris平臺上的應用和實現,對在Windows平臺和Linux平臺上的應用和實現也可作為參考。本文所采用的開發環境為Solaris2.8、Oracle8.1.7。
      2PRO*C程序設計
      PRO*C是Oracle提供的應用程序專用開發工具,它以C語言為宿主語言,能在C程序中嵌入SQL語句,進行數據庫操作。這種嵌入式的SQL語句容易掌握,適合初學者。
      2.1設置開發環境
      (1)C編譯器
      Solaris系統中常用的C語言編譯器是GCC,是GNU組織的免費C編譯器,一般Linux版本中缺省都安裝有GCC,UNIX系統中有的并不自帶,因此需要手動安裝,本文所采用的GCC版本為3.2。
      (2)PRO*C預編譯器
      PRO*C使用預編譯技術,預編譯器將源程序中的SQL語句轉換為標準的Oracle庫函數調用,從而生成C源程序,再經C編譯器編譯、鏈接后生成可執行文件。這個預編譯器是Oracle自帶的。
      (3)C語言頭文件和函數庫。
      Oracle安裝程序將這些文件安裝在$ORACLE_HOME/precomp目錄下。
      2.2開發PRO*C程序
      (1)說明SQL通訊區
      SQL通訊區用來記錄執行每一個嵌入SQL語句的狀態信息,通過在函數體外使用下列語句實現:
      #include或者EXECSQLINCLUDEsqlca;
      (2)聲明宿主變量,即C變量
      這些變量是應用程序與Oracle通信的橋梁,應用程序的輸入數據通過C變量傳遞給Oracle,反之,Oracle的輸出數據又通過C變量傳遞給應用程序。舉例如下:
      EXECSQLBEGINDECLARESECTION;
      charszUsername[16];
      VARCHARvarPassword[16];
      char*szStmt1="CREATETABLEUSERS(USERNAMEVARCHAR2(15)NOTNULL,PASSWORD
      VARCHAR2(15)NOTNULL)";
      char*szStmt2="SELECTPASSWORDFROMUSERSWHEREUSERNAME=’chen’";
      EXECSQLENDDECLARESECTION;
      值得注意的是:在SQL語句中使用C變量時,前面需加冒號,例如上面的變量應表示為:szUsername。其中,VARCHAR為C擴展數據類型,預編譯時,PRO*C預編譯器將它擴展為一個C結構類型struct{
      unsignedshortlen;
      unsignedchararr[16];
      }varNo;
      在SQL語句中使用VARCHAR類型變量時,只需指出結構名稱varPassword就可,但在C語句中使用VARCHAR類型變量時,必須具體說明所操作變量的結構元素名稱是varPassword.len還是varPassword.arr。另外,如果用VARCHAR類型變量做函數參數的話,只能用指針形式。
      (3)連接數據庫
      EXECSQLCONNECT:username/password@DBname;
      通過sqlca.sqlcode的值來判斷連接數據庫成是否功。
      (4)執行SQL語句(分為靜態SQL語句和動態SQL語句)
      靜態SQL語句是在開發應用程序時就已經明確了的數據庫操作,如:
      EXECSQLSELECTpasswordINTO:szPasswordFROMUSERSWHEREusername=:szUsername;
      動態SQL語句是在運行時由外部數據提供的,不能直接在C程序中嵌入SQL語句,但可以調用放在一個字符串變量里的SQL語句,最簡單的方法是:EXECSQLEXECUTEIMMEDIATE:szStmt1;但這樣執行的SQL語句不能實現查詢,實現查詢可用下列方法:
      EXECSQLPREPAREselect_stmtFROM:szStmt2;
      EXECSQLEXECUTEselect_stmtINTO:szPassword;
      如果不再需要已準備好的語句,應釋放:EXECSQLDEALLOCATEPREPAREselect_stmt;
      (5)提交或回滾所做的數據庫處理,并退出數據庫
      回滾:EXECSQLROLLBACKWORKRELEASE;
      提交:EXECSQLCOMMITWORKRELEASE;
      注意語句中的RELEASE選項,它要求關閉所有打開的游標,之后斷開與數據庫服務器的連接。
      2.3生成可執行文件
      在Solaris平臺下可通過命令方式對PRO*C源程序進行預編譯,下列命令只列出了最常用的預編譯選項:#prociname=example.cINCLUDE=pathCODE=ANSI_CMODE=ANSICPP_SUFFIX=cc
      SQLCHECK=SEMANTICSUSERID=username/password@DBname
      預編譯后的example.cc文件就可以當作普通的C源文件來進行處理了。
      #gcc-oexampled–I.-I/oracle/product/8.1.7/precomp/publicexample.cc
      最終生成的exampled文件就是我們的可執行文件。

      3OCI程序設計
      OCI(OracleCallInterface)是由頭文件和庫函數等組成的一套Oracle數據庫應用

      【Solaris下PRO*C和OCI程序設計分析與比較】相關文章:

      新準則下資產減值的比較分析03-24

      C語言程序設計 (一)12-26

      多媒體課件制作-《C程序設計》03-08

      I2C總線在uClinux操作系統下的驅動程序設計11-22

      公司治理模式的比較和發展趨勢分析03-19

      語言符號任意性和象似性的分析比較11-30

      中美投資準則的比較與分析03-18

      英漢被動結構比較分析03-12

      論獨立學院 C語言程序設計教學改革與實踐03-27

      主站蜘蛛池模板: 国产精品麻豆成人av| 塔城市| 国产精品毛片av一区二区| 临澧县| 日韩肥熟妇无码一区二区三区| 国产西西裸体一级黄色大片| 临城县| 定结县| 大陆啪啪福利视频| 国产亚洲美女精品久久久2020| 国产三级黄色的在线观看| 国产成人精品亚洲日本在| 布拖县| 萨迦县| 敦煌市| 麻豆国产AV网站| 永久免费的拍拍拍网站| 精品亚洲一区二区99| 亚洲天堂av社区久久| 男女互操视频网站在线观看| 中文字幕日韩精品人妻在线| 亚洲欧美国产成人综合不卡| 封丘县| 从化市| 邹城市| 民县| 孟津县| 国产小视频一区二区三区| 盐城市| 历史| 国产精品麻豆A啊在线观看 | 精品国产亚洲av网站| 国产精品色内内在线播放| 河北省| 亚洲av综合日韩精品久久久| 亚洲AV无码一区二区三区少妇av | 柏乡县| 国产精品亚洲综合色区韩国| 99久久免费精品色老| 免费人人av看| 日本精品免费一区二区三区|