电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C++连接Oracle收藏

9页
  • 卖家[上传人]:博****1
  • 文档编号:478354858
  • 上传时间:2023-12-05
  • 文档格式:DOCX
  • 文档大小:19.25KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、公告:博见反馈官方博客C+连接Oracle收藏在VisualC+下开发Oracle库接口主要有两种方法。一种方法是利用VisualC+ +提供的多种库访问技术,如开放库连接ODBC、数据存取对象DAO、对象连接和嵌入库OLEDB和ActiveX数据对象ADO等。另一种方法是在VisualC + +中嵌入SQL语句,这就是所指的 Pro*C/C+ (本文简称PROC X前一种方法由于有MFC强大的类库支持,熟悉VC编程时则实 现方便,且可移植性强;但是,与PROC相比,应用程序需要经过两层才能和数据库通信接口建 立联系,编程相对复杂,执行效率相对较低。PROC支持嵌入式PL/SQL块等直接调用Oracle库, 将过程化语言和非过程化语言相结合,形成一种更强的开发工具,可开发出满足各种复杂要求的优 化应用程序,即亍效率高。适合熟悉Oracle技术的人员应用。但是用PROC开发出的应用程序无法向异构库平台移植。本文详细描述实际利用PROC在VisualC+ +环境下开发Oracle数据库接口程序的方法和具体 操作步骤,并给出了编程实例。叙述以VisualC+6.0版和Oracle8i版为例,

      2、其他版本可根据实 际情况变更。几个特殊文件PROC在VC下开发Oracle库接口时,需要用到几个中寺殊文件。1、PROC的可执行文件PROCUI.EXE用OracljHOME代表Oracle安装后的根目录,当其以缺省方式安装在计算机的D盘时,则 Oracle_HOME 位置是 D:Oracle。 这时 PROC 的可执行文件在 Oracle_HOMEOra81BINPROCUI.EXE 5撇省锣即在D:OradeOra81BINPROCUI.EXE。2、Oracle支持SQL在VC环境的库文件OraSQL8.LIB根 据 以 上 约 定 , OraSQL8.LIB 文 件 在 Oracle_HOMEOra81PRECOMPUBMSVCOraSQL8.UB ,对缺省安装即在 D:0racle0ra81PREC0MPLIBMSVC0raSQL8.LIB。3、Oracle支持SQL在VC环境的头文件根据以上约定,头文件*.h在Oacle_HOMEOa81PRECOMPPUBUC*.h ,对缺省安装即 在 D:OracleOra81PRECOMPPUBLIC*.h。.h是头文件的总称,通常有十

      3、多个,具体内容可在指定路径下查到。将PROC集成到VC环境中为了方便完成用PROC在VC下开发Oracle库接口,通常将PROC集成到VisualC + + 6.0环 境中,直接在C/C + +环境中使用PROC预编译器来预编译应用程序,然后进行编译和链接,最终 生成可执行程序。将PROC集成到VC环境中应完成如下工作。1、增力口 PROC至ITools 睁列表a)运行 MicrosoftVisualC+ +6.0 ;b)从菜单项Tools中选择Customize项。为表述简单起见,书写成如下格式:菜单 Tools/Customize项。以下采用类似的表达方法。此时出现Customize对话框;。单击Tools选项卡(或属性页),用鼠标移动Menucontents”框滚动条到底部区域;d)双击点划线矩形区域,在空白区域上输入“PROC,然后按回车键;e)在Command框中,输入PROC的可执行文件名。根据2.1节的说明,对缺省安装即输 入 D:OracleOra81BINPROCUI.EXE ;f)在Arguments框中输入“$(TargetName)”.其作用在从菜单Tools中

      4、选择PROC项时, VC会将当前项目名传递给PROC,尔后PROC会直接打开该项目文件目录下扩展名为.pre的同名 文件;g)在Initialdirectory” 框中输入 /$(WkspDir)H /单击Close”按钮,完成将 PROC 集成 到VC环境中的工作。2、指定头文件路径为了确保VC顺利完成编译链接,需要将Oracle提供的头文件增加到VC环境中。指定头文 件路径的具体步骤如下。a)菜单 Tools/Options 项,出现Options”对话框;b)单击Directories”选项卡,从Showdirectoriesfor:M 列表框中选择 Includefiles ;。移动Directories”框的滚动条到底部区域;d)双击点划线矩形区域在空白区域上输入包含Oracle支持SQL在VC环境头文件的子目录,根据2.3节的说明,对缺省安装即输入D:0racle0ra81PREC0MPPUBLIC。编程举例1、程序内容一般SQL嵌入式程序主要有说明、包含头文件、子程序声明、主程序和子程序等部分组成,库子程序、断开数据库子程序、错误在主程序中调用有关子程序。必备的子程序通常

      5、有连接到矍 处理子程序和完成某项具体事务(如查询、插入、修改、删除等)的工作子程序。2、程序举例下面是一完整的可通过预编译、编译链接和运行的示例程序。/*exam01.pc开发Oracle接口程序举例*/*说明:本程序介绍用PROC开发Oracle库接口的编程特点。通过向AUTHS表输入作家代码,查询作家姓名及工资。运行前应建表、插入数据并提交。*/#include #include#include/*包含SQL通讯区,它用于处理错误。*/#includevoidconnect。;/* 连接至 ij OracleServer*/voiddisconnect。;/*断开至ij OracleServer 的连接*/ voidsql_error(cha r*);/处理错误句柄*/ voidselect。;/* 查询子程序*/ externsqlglmCcharinCjnt*);/*主程序*/voidmain()(/*安装错误处理句柄/EXECSQLWHENEVERSQLERRORDOsql_error(Orade 错误一n)/*连接到数据库*/connectO;/*执行查询*/select(

      6、);/*断开数据库连接*/disconnect();)子程序*/*连接子程序connectO*/voidconnectO(EXECSQLBEGINDECLARESECTION;VARCHARusername10,password10,server10;EXECSQLENDDECLARESECTION;/输入用户名、口令以及服务器名/printf(n输入用户名:);gets(username.arr);username.Ien=(unsignedshort)strlen(char*)username.arr);printf(n 输入口令:);gets(password.arr);password.Ien=(unsignedshort)strlen(char*)password.arr);printf(n输入服务器名:);gets(server.arr);server.len=(unsignedshort)strlen(char*)server.arr);/*连接到Oracle服务器上/EXECSQLCONNECT:usernameIDENTIFIEDBY:passwordUSING:se

      7、rver;printf(wn 以用户s 成功地连接到了服务器s 上! n,username.arr,server.arr);)/*断开连接子程序disconnectO*/voiddisconnect()(chartemp;printf(n是否在断开连接前提交所有事务? (Y/N);scanf(%c&temp);fflush (stdin);if(temp!=Y&temp! = y)(/*回退事务,断开连接。*/EXECSQLROLLBACKWORKRELEASE;printfCn回退事务,断开连接,退出程序! W);)else(/*提交事务,断开连接。*/EXECSQLCOMMITWORKRELEASE;printf(n提交事务,断开连接,退出程序! W); exit(l);)/*查询子程序select()首先输入作家代码,然后查询作家姓名和工资。VvoidselectQEXECSQLBEGINDECLARESECTION;charauthor_code8,name10;floatsalary;shortsalaryjnd;EXECSQLENDDECLARESECTION;printf

      8、(n输入作家代码);gets(author_code);/*查询作家姓名和工资/EXECSQLSELECTname,salaryINTO:name,:salary:salary_indFROMauthsWHEREauthor_code=:author_code;/*根据指示变量的值来确定该作家的工资是否为空。*/if(salary_ind=O)(printf(n作家代码t作家姓名t作家工资n)printf(-ttn);printf(%8st%8st%8.2fn,author_code,name,salary);)elseprintf(作家$的工资未录入,为空值! nname);)/*错误处理子程序sqLerror()*/voidsql_error(char*msg)charerr_msg128;size_tbuf_len,msg_len;/出现SQL茴吴.继续往下执行.*/EXECSQLWHENEVERSQLERRORCONTINUE;pintf(n%sn”,msg);bufjen=sizeof(err_msg);/调用函数sqlglmO获得错误消息。*/sqlglm(err_msg,&buf_len,&msg_len);printf(R%.*snmsgJenferr_msg);/*回退事务,断开连接,退出程序。/EXECSQLROLLBACKRELEASE;exit(EXIT.FAILURE);3、建表和插入要记录上述示例程序如要正确运行,还需以Oracle库的合法用户登录,并创建AUTHS表和插入一上节生成的可执行文件才能正确运行。REM以下为建表文件auths.SQLDROPTABLEauthsCASCADECONSTRAINTS /CREATETABLEauths(AUTHOR_CODEVARCHAR2(8)NOTNULL,NAMEVARCHAR2(10),BIRTHDATEDATE,ENTRY DATE TIMEDATE,SALARYNUMBER。,2), remarkVARCHAR2(255)REM下一行为在PL/SQL环境中运行建表文件的命令REME:PROCWExam01auths.sql的命令,插入后应提交(COMMIT) !REM下一行为在PL/SQL环境中向auths表

      《C++连接Oracle收藏》由会员博****1分享,可在线阅读,更多相关《C++连接Oracle收藏》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.