数据库编程总结.docx
《数据库编程总结.docx》由会员分享,可在线阅读,更多相关《数据库编程总结.docx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结当前各种主流数据库有许多,包括Oracle,MSSQLServer,Sybase, Informix,MySQL,DB2, Interbase/ Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等。数据库编程是对数据库的创建、读写等一列的操作。数据库编程分为数据库客户端编程与数据库服务器端编程。数据库客户端编程主要使用 ODBC API、ADO、ADO.NET、OCI、OTL等方法。数据库服务端编程主要使用OLE DB等方法。数据库编程需要把握一些拜访数据库技术方法,仍需要留意怎么设计高效的数据库、数据库治理与
2、运行的优化、数据库语句的优化。一、拜访数据库技术方法数据库编程分为数据库客户端编程与数据库服务器端编程。数据库客户端编程主要使用ODBCAPI 、ADO、 ADO.NET、OCI、OTL等方法。数据库服务端编程主要使用OLE DB等方法。1、几种是数据库拜访方法比较ODBC API是一种适合数据库底层开发的编程方法,ODBC API 供应大量对数据源的操作 ,ODBC API 能够敏捷的操作游标 , 支持各种帮定选项 , 在全部 ODBC相关编程中 ,API 编程具有最高的执行速度。DAO供应了很好的数据库编程的对象模型. 但是, 对数据库的全部调用以及输出的数据都必需通过Access/Jet
3、数据库引擎 , 这对于使用数据库应用程序, 是严峻的瓶颈。OLEDB供应了 COM接口,与传统的数据库接口相比,有更好的健壮性和敏捷性,具有很强的错误处理才能, 能够同非关系数据源进行通信。ADO最主要的优点在于易于使用、速度快、内存支出少和磁盘遗迹小。ADO.NET是利用数据集的概念将数据库数据读入内存中,然后在内存中对数据进行操作,最终将数据集数据回写到源数据库中。OTL 是 Oracle, Odbc and DB2-CLI Template Library的缩写,是一个C+编译中操控关系数据库的模 板库, OTL 中直接操作 Oracle 主要是通过 Oracle 供应的 OCI 接口进
4、行,进行操作 DB2数据库就是通过CLI 接口来进行,至于 MS的数据库和其它一些数据库,就OTL只供应了 ODBC来操作的方式。当然Oracle 和DB2也可以由 OTL间接使用 ODBC的方式来进行操纵。具有以下优点:跨平台。运行效率高,与C语言直接调用 API 相当。开发效率高,起码比ADO.net 使用起来更简洁,更简洁。部署简洁,不需要ADO组件,不需要.net framework等。2、VC数据库编程几种方法VC数据库编程几种方法,包括ODBC连接、 MFCODBC连接、 DAO连接、 OLEDB、OLE DB Templates 连接、ADO、Oracle 专用方法 OCIOra
5、cle Call Interface拜访、 Oracle Object OLE C+ Class Library 。 通用方法1. ODBC连接ODBCOpen DataBase Connectivity是 MSOA的一部分 , 是一个标准数据库接口。它供应对关系数据库拜访的统一接口 , 实现对异构数据源的一样拜访。可编辑资料 - - - 欢迎下载精品名师归纳总结ODBC数据拜访由以下部分组成 :句柄 Handles:ODBC 使用句柄来标识 ODBC环境、连接、语句和描述器.缓存区 Buffers:数据类型 Data types一样性级别 Conformance levels用 ODBC设计
6、客户端的一般步骤 :安排 ODBC环境安排连接句柄连接数据源构造和执行 SQL语句获得查询结果断开数据源的连接释放 ODBC环境ODBC API是一种适合数据库底层开发的编程方法 ,ODBC API 供应大量对数据源的操作 ,ODBC API 能够敏捷的操作游标 , 支持各种帮定选项 , 在全部 ODBC相关编程中 ,API 编程具有最高的执行速度 . 因此,ODBC API 编程属于底层编程。2. MFC ODBC连接MFCODBC是 MFC对 ODBC进行的封装 , 以简化对 ODBCAPI 的 调用, 从而实现面对对象的数据库编程接口.MFC ODBC的封装主要开发了 CDatabase
7、 类和 CRecordSet 类(1) CDatabase类CDatabase 类用于应用程序建立同数据源的连接。 CDatabase 类中包含一个 m_hdbc变量 , 它代表了数据源的连接句柄。假如要建立 CDatabase 类的实例 , 应先调用该类的构造函数 , 再调用 Open函数, 通过调用 , 初始化环境变量 , 并执行与数据源的连接。在通过 Close 函数关闭数据源。CDatabase 类供应了对数据库进行操作的函数及事务操作。(2) CRecordSet类CRecordSet 类定义了从数据库接收或者发送数据到数据库的成员变量, 以实现对数据集的数据操作。可编辑资料 - -
8、 - 欢迎下载精品名师归纳总结CRecordSet 类的成员变量 m_hstmt 代表了定义该记录集的SQL语句句柄 ,m_nFields为记录集中字段的个数,m_nParams 为记录集所使用的参数个数。CRecordSet 的记录集通过 CDatabase 实例的指针实现同数据源的连接, 即 CRecordSet 的成员变量m_pDatabase.MFCODBC编程更适合于界面型数据库应用程序的开发, 但由于 CDatabase 类和 CRecordSet 类供应的数据库操作函数有限 , 支持的游标类型也有限 , 限制了高效的数据库开发。在编程层次上属于高级编程。应用实例:1. 打开数据库
9、CDatabase database;database.OpenEx _T DSN=zhuxue ,CDatabase:noOdbcDialog;/zhuxue为数据源名称2. 关联记录集CRecordset recset&database;3. 查询记录CString sSql1=;sSql1 = SELECT * FROM tablename ; recset.OpenCRecordset:forwardOnly, sSql1, CRecordset:readOnly;int ti=0;CDBVariant var;/var可以转换为其他类型的值while .recset.IsEOF/ 读
10、取 Excel 内部数值recset.GetFieldValueid,var; jiangxiangti.id=var.m_iVal; recset.GetFieldValuename, jiangxiangti.name; ti+;recset.MoveNext;recset.Close;/关闭记录集4. 执行 sql 语句可编辑资料 - - - 欢迎下载精品名师归纳总结CString sSql=;sSql+=delete * from院系审核 ;/清空表database.ExecuteSQLsSql;sSql 也可以为 Insert ,Update等语句5. 读取字段名sSql = SEL
11、ECT * FROM Sheet1 ; /读取的文件有Sheet1 表的定义 , 或为本程序生成的表 ./执行查询语句recset.OpenCRecordset:forwardOnly, sSql, CRecordset:readOnly; int excelColCount=recset.GetODBCFieldCount;/列数CString excelfield30;/ 得到记录集的字段集合中的字段的总个数for i=0;iexcelColCount;i+CODBCFieldInfo fieldinfo; recset.GetODBCFieldInfoi,fieldinfo;excelf
12、ieldi.name =fieldinfo.m_strName;/字段名6. 打开 excel文件CString sDriver = MICROSOFT EXCEL DRIVER *.XLS; / Excel安装驱动CString sSql,sExcelFile; /sExcelFile为 excel 的文件路径TRY/创建进行存取的字符串sSql.FormatDRIVER=%s;DSN=;FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=%s;DBQ=%s,sDriver, sExcelFile, sExcelFile;/创建数据库 既 Excel 表格
13、文件 if database.OpenExsSql,CDatabase:noOdbcDialog / 可以把 excel 作为一个数据库操作catcheTRACE1Excel 驱动没有安装 : %s,sDriver;可编辑资料 - - - 欢迎下载精品名师归纳总结AfxMessageBox 读取失败 , 请检查是否定义数据区Sheet1;3. DAO 连接DAOData Access Object是一组 Microsoft Access/Jet数据库引擎的COM自动化接口 .DAO直接与 Access/Jet数据库通信 . 通过 Jet 数据库引擎 ,DAO也可以同其他数据库进行通信。DAO仍
14、封装了 Access 数据库的结构单元 , 通过 DAO可以直接修改 Access 数据库的结构 , 而不必使用 SQL的数据定义语言 DDL 。DAO的体系结构如下 :DAO封装的类:1CdaoWorkspace: 对 DAO工作区 数据库处理事务治理器 的封装2CdaoDatabase: 对 DAO数据库对象的封装 , 负责数据库连接 . 3CdaoRecordset:对 DAO记录集对象的封装 , 代表所选的一组记录. 4CdaoTableDef:对表定义对象的封装 , 代表基本表或附加表定义 . 5CdaoQueryDef: 对查询对象的封装 , 包含全部查询的定义 . 6CdaoEx
15、ception:DAO用于接收数据库操作反常的类. 7CDaoFieldExchangeDAO供应了很好的数据库编程的对象模型. 但是, 对数据库的全部调用以及输出的数据都必需通过Access/Jet数据库引擎 , 这对于使用数据库应用程序, 是严峻的瓶颈。DAO相对于 ODBC来说,属于高层的数据库接口.4. OLE DB 连接OLEDB对 ODBC进行了两方面的扩展 : 一是供应了数据库编程的OLE接口即 COM,二是供应了一个可用于关系型和非关系型数据源的接口。OLEDB供应了 COM接口,与传统的数据库接口相比,有更好的健壮性和敏捷性,具有很强的错误处理才能, 能够同非关系数据源进行通
16、信。与 ODBC API一样 ,OLE DB 也属于底层的数据库编程接口,OLE DB 结合了 ODBC对关系数据库的操作功能,并进行扩展,可以拜访非关系数据库。OLE DB拜访数据库的原理如下 : OLE DB程序结构 :可编辑资料 - - - 欢迎下载精品名师归纳总结OLE DB由客户 Consumer 和服务器 Provider。客户是使用数据的应用程序,它通过OLE DB接口对数据供应者的数据进行拜访和掌握。OLE DB服务器是供应 OLE DB 接口的软件组件。依据供应的内容可以分为数据供应程序 Data Provider和服务供应程序 Service Provider。程序结构原理
17、图如下 :数据供应程序数据供应程序拥有自己的数据并把数据以表格的形式出现给使用者使用.服务供应程序服务供应程序是数据供应程序和使用者的结合。它是OLE DB体系结构中的中间件 , 它是 OLE DB数据源的使用者和数据使用程序的供应者数据使用程序数据使用程序对储备在数据供应程序中的数据进行使用和掌握. OLE DB开发程序的一般步骤:初始化 COM环境连接数据源打开对话执行命令处理结果清除对象应用实例:使用 OLEDB编写数据库应用程序1 概述OLE DB的存在为用户供应了一种统一的方法来拜访全部不同种类的数据源。OLE DB可以在不同的数据源中进行转换。利用 OLE DB,客户端的开发人员在
18、进行数据拜访时只需把精力集中在很少的一些细节上,而不必弄懂大量不同数据库的拜访协议。OLE DB是一套通过 COM接口拜访数据的 ActiveX 接口。这个 OLE DB接口相当通用,足以供应一种拜访数据的统一手段,而不管储备数据所使用的方法如何。同时, OLE DB仍答应开发人员连续利用基础数据库技术的优点,而不必为了利用这些优点而把数据移出来。可编辑资料 - - - 欢迎下载精品名师归纳总结2 使用 ATL 使用 OLE DB数据使用程序由于直接使用 OLE DB的对象和接口设计数据库应用程序需要书写大量的代码。为了简化程序设计, Visual C+ 供应了 ATL 模板用于设计 OLE
19、DB数据应用程序和数据供应程序。利用 ATL 模板可以很简洁的将 OLE DB与 MFC结合起来,使数据库的参数查询等复杂的编程得到简化。MFC供应的数据库类使 OLE DB的编程更具有面对对象的特性。Viual C+ 所供应用于 OLE DB的 ATL模板可分为数据供应程序的模板和数据使用程序的模板。使用 ATL 模板创建数据应用程序一般有以下几步骤: 1)、 创建应用框架2) 、 加入 ATL产生的模板类3) 、 在应用中使用产生的数据拜访对象3 不用 ATL 使用 OLE DB数据使用程序利用 ATL 模板产生数据使用程序较为简洁,但适用性不广,不能动态适应数据库的变化。下面我们介绍直接
20、使用 MFC OLE DB类来生成数据使用程序。模板的使用OLE DB数据使用者模板是由一些模板组成的,包括如下一些模板,下面对一些常用类作一些介绍。1)、 会话类CDataSource 类CDataSource 类与 OLE DB的数据源对象相对应。这个类代表了OLE DB数据供应程序和数据源之间的连接。只有当数据源的连接被建立之后,才能产生会话对象,可以调用Open来打开数据源的连接。CSession 类CSession 所创建的对象代表了一个单独的数据库拜访的会话。一个用 CDataSource 类产生的数据源对象可以创建一个或者多个会话,要在数据源对象上产生一个会话对象,需要调用函数O
21、pen 来打开。同时, 会话对象仍可用于创建事务操作。CEnumeratorAccessor 类CEnumeratorAccessor 类是用来拜访枚举器查询后所产生的行集中可用数据供应程序的信息的拜访器, 可供应当前可用的数据供应程序和可见的拜访器。2) 、 拜访器类可编辑资料 - - - 欢迎下载精品名师归纳总结CAcessor 类CAccessor 类代表与拜访器的类型。当用户知道数据库的类型和结构时,可以使用此类。它支持对一个行集采纳多个拜访器,并且,存放数据的缓冲区是由用户安排的。CDynamicAccessor 类CDynamicAccessor 类用来在程序运行时动态的创建拜访器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库编程总结 数据库 编程 总结
限制150内