欢迎来到天天文库
浏览记录
ID:37900444
大小:74.00 KB
页数:10页
时间:2019-06-02
《VisualC++中连接Oracle数据库的几种方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、FarsPDF整理2012.7.25VisualC++中连接Oracle数据库的几种方法周计成,章立,刘晓林(78179部队,成都610000)(Fars整理)IIIFarsPDF整理2012.7.25摘要介绍了VisualC++平台下连接Oracle数据库的几种主要方法,同时给出了具体的使用步骤和示例。对这几种方法的特点进行了分析,比较了它们的优点和应用范围。关键词:VisualC++;Oracle数据库开发;ADO;OCI;Pro*CIIIFarsPDF整理2012.7.25目录摘要II第一讲引言1第二讲VC连接Oracle数
2、据库的方法22.1ADO连接Oracle2(1)用#import指令引入ADO类型库2(2)初始化OLE/COM库环境2(3)在VC++中用ADO连接oracle的示例22.2OCI连接Oracle2(1)定义OCI句柄3(2)分配句柄3(3)连接数据库32.3PROC方式连接Oracle4(1)PROC的可执行文件PROCUI.EXE4(2)Oracle支持SQL在VC环境的库文件OraSQL8.LIB4(3)Oracle支持SQL在VC环境的头文件4第三讲连接方法的比较53.1数据访问应用程序接口特性53.2技术特性比较53.
3、3性能特性5参考文献6ReadMe7IIIFarsPDF整理2012.7.2510FarsPDF整理2012.7.25第一讲引言Oracle数据库是一种广泛使用的数据库系统,它的功能强大,具有良好的性能和较高的安全保密性,提供了与高级语言配合的专用接口,可以使用主流的开发工具快速开发,同时支持C/S和B/S工作模式,因而被大量用到信息系统的开发中。Microsoft提供了许多相关组件支持数据库的访问,Oracle公司也提供了Oracle数据库应用程序的开发接口。在VisualC++下连接Oracle库主要有3种方法。一种方法是利用
4、VisualC++提供的多种数据库访问技术,如ActiveX数据对象ADO、开放数据库连接ODBC、数据存取对象DAO、对象连接和嵌入数据库OLEDB等。另一种方法是在VisualC++中嵌入SQL语句,文中指Pro*C/C++(简称PROC)。第三种方法是使用Oracle公司提供的底层接口开发工具OCI。10FarsPDF整理2012.7.25第二讲VC连接Oracle数据库的方法2.1ADO连接Oracle用ADO连接数据库的一般步骤如下:(1)用#import指令引入ADO类型库在stdafx.h中加入如下语句:#impor
5、t"c:programfilescommonfilessystemadomsado15.dll"no_namespacerename("EOF","adoEOF")它的作用是编译的时候系统会生成msado15.tlh和ado15.tli两个C++头文件来定义ADO库。在具体的开发环境中msado15.dll不一定在这个目录下,可按实际情况修改该文件的路径。(2)初始化OLE/COM库环境ADO库是一组COM动态库,应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,可以在应用程序主类的InitIns
6、tance成员函数里初始化OLE/COM库环境。(3)在VC++中用ADO连接oracle的示例ADO库包含3个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。与数据库的连接就是用_ConnectionPtr接口,它的连接字符串可以是自己直接写,也可以指向一个ODBCDSN。在本例中用户名和密码都是test,数据库名是myoracle。下面是示例代码:_ConnectionPtrm_pConnection;_RecordsetPtrm_pRecordset;//初始化COM,
7、创建ADO连接AfxOleInit();m_pConnection.CreateInstance(__uuidof(Connection));try//建立数据库连接{m_pConnection.CreateInstance(__uuidof(Connection));m_pConnection->Open("Provider=OraOLEDB.Oracle.1;Password=test;UserID=test;DataSource=myoracle;PersistSecurityInfo=True","","",adModeU
8、nknown);}catch(_com_errore){CStringerrormessage;errormessage.Format("数据库连接失败!r错误信息:%s",e.ErrorMessage());AfxMessageBox(er
此文档下载收益归作者所有