您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 招标投标 > ProCC+++编程
1Pro*C/C++编程Pro*C/C++编程.......................................................................................................................................................1一、Pro*C/C++简介.......................................................................................................................................11.1、Pro*C/C++是什么..........................................................................................................................11.2、Pro*C/C++处理流程......................................................................................................................2二、Pro*C/C++GCC环境配置......................................................................................................................32.1、Pro*C/C++预编译环境..................................................................................................................32.2、GCC编译器....................................................................................................................................5三、开始编写第一个Pro*C++代码................................................................................................................53.1、第一个Pro*C++代码.......................................................................................................................53.2、Pro*C++代码预编译........................................................................................................................63.3、GCC编译........................................................................................................................................73.4、最后测试..........................................................................................................................................8四、复杂一些的Pro*C/C++代码....................................................................................................................84.1、代码部分..........................................................................................................................................84.2、代码编译........................................................................................................................................124.3、代码测试........................................................................................................................................14一、Pro*C/C++简介1.1、Pro*C/C++是什么为了用户开发Oracle应用程序,Oracle提供了一套Oracle调用规范,即OracleCallInterface(OCI),但是比较难以掌握使用,对于熟悉C/C++的用户要编写Oracle应用程序,还需要花很多时间去研究OCI,因此Oracle推出了一个在C/C++代码中直接嵌入SQL的方法,然后通过Oracle提供的预编译程序,编译成SQLLIB的调用,这就是Pro*C/C++。注意,SQLLIB与OCI是不同的,SQLLIB主要是保含一系列函数的Oracle应用程序运行库,用于应用程序执行或预编译时调用,其本身并不是Oracle标准接口API,随着Oracle版本的变化SQLLIB的函数调用格式、用法、参数等也有可能变化。如果一个项目中需要一个比较通用的、平台一致性好的、不随数据库版本变化而变化的一系列封装函数,最好的建议是使用OracleCallInterface(OCI)进行标准C语言的编程处理。21.2、Pro*C/C++处理流程C/C++源代码=⇒源代码中嵌入SQL=⇒通过Pro*C预编译命令产生新的源代码=⇒通过正常的C/C++编译器编译连接应用程序=⇒运行应用程序3二、Pro*C/C++GCC环境配置2.1、Pro*C/C++预编译环境当您安装Oracle数据库产品的时候,Pro*C/C++的预编译环境缺省就为我们安装好了,我们这里以安装Oracle10G版本为例.在Oracle_Home的Bin目录下,您可以找到预编译程序proc.exe,这个就是用来预编译您有在C/C++代码中嵌入SQL的文件的.该编译程序用到了Oracle_Home下的precomp\public目录中的.h头文件,在正真编译生成可执行文件时又会用到precomp\lib的一个.lib库文件.我们进入command窗口,看看proc编译命名的参数:Pro*C/C++编译命令参数(10G)C:\oracle\product\10.2.0\db_2\BINprocPro*C/C++:Release10.2.0.1.0-ProductiononMonFeb2316:22:292009Copyright(c)1982,2005,Oracle.Allrightsreserved.Systemdefaultoptionvaluestakenfrom:C:\oracle\product\10.2.0\db_2\precomp\admin\pcscfg.cfgOptionNameCurrentValueDescription-------------------------------------------------------------------------------auto_connectnoAllowautomaticconnectiontoops$accountchar_mapcharzMappingofcharacterarraysandstringsclose_on_commitnoCloseallcursorsonCOMMITcmax100CMAXValueforconnectionpoolcmin2CMINValueforconnectionpoolcincr1CINCRValueforconnectionpoolctimeout0CTIMEOUTValueforconnectionpoolcnowait0CNOWAITValueforconnectionpoolcodecppThetypeofcodetobegeneratedcomp_charsetmulti_byteThecharactersettypetheCcompilersupportsconfigdefaultOverridesystemconfigurationfilewithanothercpoolnoSupportconnectionpoolingcpp_suffixccOverridethedefaultC++filenamesuffixdbmsnativev6/v7/v8compatibilitymodedef_sqlcodenoGenerate'#defineSQLCODEsqlca.sqlcode'macrodefine*none*DefineapreprocessorsymboldurationtransactionSetpindurationforobjectsinthecachedynamicoracleSpecifyOracleorANSIDynamicSQLSemanticserrorsyesWhethererrormessagesaresenttotheterminalerrtype*none*Nameofthelistfileforintypefileerrors4eventsnoSupportpublish-subscribeeventnotificationsfipsnoneFIPSflaggingofANSInoncompliantusageheader*none*SpecifyfileextensionforPrecompiledHeadershold_cursornoControlholdingofcursorsinthecursorcacheiname*none*Thenameoftheinputfileinclude*none*Directorypathsforincludedfilesintype*none*ThenameoftheinputfilefortypeinformationlinesnoAdd#linedirectivestothegeneratedcodelname*none*OverridedefaultlistfilenameltypeshortTheamountofdatageneratedinthelistfilemaxliteral1024Maximumlengthofageneratedstringliteralmaxopencursors10MaximumnumberofcachedopencursorsmodeoracleCodeconformancetoOracleorANSIrulesnative_typesnoSupportfornativefloat/doublenls_char*none*SpecifyNationalLan
本文标题:ProCC+++编程
链接地址:https://www.777doc.com/doc-4855116 .html