VC++数据库开发技术比较

从功能简单的数据库(如Jet Engine)到复杂的大型数据库系统(如oracle),VC++6.0都提供了一些编程接口。本文主要介绍如下五种: 1.ODBC API; 2.MFC ODBC类; 3.MFC DAO类;(数据访问对象) 4.MFC的OLE/DB; 5.ActiveX数据对象(ADO)。sql

1.开放数据库链接(ODBC API):提供了一个通用的编程接口,容许程序与多种不一样的数据库链接。它为Oracle,SQL Server,MS Excel等都提供了驱动程序,使得用户能够使用SQL语句对数据库进行直接的底层功能操做。在使用ODBC API时,用户须引入的头文件为"sql.h","sqlext.h","sqltypes.h"。用ODBC API建立数据库应用程序遵循必定的基本步骤: 第一步是分配ODBC环境,使一些内部结构初始化。完成这一步,须分配一个SQLHENV类型的变量在ODBC环境中作句柄使用。 第二步是为将要使用的每个数据源分配一个链接句柄,由函数SQLALLocHandle()完成。 第三步是使用SQLConnect()把链接句柄与数据库链接,能够先经过SQLSetConnectAttr()设置链接属性。 而后就能够进行SQL语句的操做,限于篇幅,相关的函数就不具体介绍了,读者能够参考相关书籍。 操做完成后,用户取回相应的结果,就能够取消与数据库的链接。 最后须要释放ODBC环境。 ODBC API的特色是功能强大丰富,提供了异步操做,事务处理等高级功能,但相应的编程复杂,工做量大。数据库

2.MFC ODBC类:MFC1.5后的版本里引入封装了ODBC功能的类。经过这些类提供与ODBC的接口,使得用户能够不须处理ODBC API中的繁杂处理就能够进行数据库操做。主要的MFC ODBC类以下。 CDatabase类:一个CDatabase对象表示一个到数据源的链接,经过它能够操做数据源。应用程序可以使用多个CDatabase对象:构造一个对象并调用OpenEx()成员函数打开一个链接。接着构造CRecordSet对象以操做链接的数据源,并向CDatabase对象传递记录集构造程序指针。完成使用后用Close()成员函数销毁CDatabase对象。通常状况下并不须要直接使用CDatabase对象,由于CRecordSet对象能够实现大多数的功能。可是在进行事务处理时,CDatabase就起到关键做用。事务(Transaction)指的是将一系列对数据源的更新放在一块儿,同时提交或一个也不提交,为的是确保多用户对数据源同时操做时的数据正确性。 CRecordSet类:一个CRecordSet对象表明一个从数据源选择的一组记录的集合-记录集。记录集有两种形式:snapshot和dynaset。前者表示数据的静态视图,后者表示记录集与其余用户对数据库的更新保持同步。经过CRecordSet对象,用户能够对数据库中的记录进行各类操做。 CRecordView类:CRecordView对象是在空间中显示数据库记录的视图。这种视图是一种直接连到一个CRecordSet对象的格式视图,它从一个对话框模板资源建立,并将CRecordSet对象的字段显示在对话框模板的控件里。对象利用DDX和RFX机制,使格式上的控件和记录集的字段之间数据移动自动化,也就是说,用户甚至不要编写一行代码就能够实现简单的数据库记录查看程序。编程

CDBException类:由Cexception类派生,以三个继承的成员变量反映对数据库操做时的异常: m_nRetCode:以ODBC返回代码(SQL_RETURN)的形式代表形成异常的缘由。 m_strError:字符串,描述形成抛出异常的错误缘由。 m_strStateNativeOrigin:字符串,用以描述以ODBC错误代码表示的异常错误。 MFC数据库类成员函数都能抛出CDBException类型的异常,因此在代码对数据库进行操做后监测异常是正确作法。 MFC ODBC类在实际开发中应用最广,由于它功能丰富,操做相对简便。oracle

3.MFC DAO(数据访问对象)编程:DAO用于和微软的Access数据库接口。在数据库应用程序若是只需与Access数据库接口时,使用DAO编程较方便。其主要类以下。 CDaoWorkspace:CDaoWorkspace对象可让一个用户管理从登录到离开期间,指定的密码保护的数据库会话全过程。大多数状况下不要多个工做区也不要建立明确的工做区对象。由于在打开数据库和记录集对象时,它们能够使用DAO缺省工做区。 CDaoDatabase:表明一个链接,相似上述CDatabase类。 CDaoRecordSet:用来选择记录集并操做,相似上述CRecordSet类。 CDaoRecordView:相似上述CRecordView类。 CDaoException:相似上述CDBException类。 CDaoTableDef:表示基本表或附加表的定义。每一个DAO数据库对象包括一个称为TableDef的收集,包含全部存储的DAO表定义对象。CDaoTableDef对象能够用来控制表定义。 CDaoQueryDef:CDaoQueryDef对象表示了一个查询定义(querydef)。 CDaoFieldExchange:支持数据库类使用的DAO字段交换(DFX)例程。也可处理事务,相似MFC ODBC类。 MFC DAO仅用来支持Access数据库,应用范围相对固定。异步

相关文章
相关标签/搜索