小编浅谈DAO的特色

 

DAO可以通过ODBC驱动程序访问ODBC数据源。但DAO是基于Microsoft Jet引擎的,通过该引擎,DAO可以直接访问AccessFoxProdBASEParadoxExcelLotus WK等数据库。CDaoDatabase类可以直接与这些数据库进行连接,而不必在ODBC管理器中注册DSN。例如,下面的代码用来打开一个FoxPro数据库:

CDaoDatabase daoDb;

daoDb.Open( “”,FALSE,FALSE,"FoxPro 2.5;DATABASE=c://zyf");

CDaoDatabase::Open函数用来连接某个数据库,该函数的声明为:

virtual void Open( LPCTSTR lpszName, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = _T("") );
throw( CDaoException, CMemoryException );

 

  参数bExclusive如果为TRUE,则函数以独占方式打开数据库,否则就用共享方式。如果bReadOnlyTRUE,那么就以只读方式打开数据库。如果要打开一个Access数据库,则可以在lpszName参数中指定MDB文件名。如果要访问非Access数据库,则应使该参数为“”,并在lpszConnect中说明一个连接字符串。连接字符串的形式一般为数据库类型;DATABASE=路径(文件),例如 “dBASE III;DATABASE=c://MYDIR”

  Open函数也可以打开一个ODBC数据源,但这需要相应的ODBC驱动程序,并需要在ODBC管理器中注册DSN。此时lpszConnect的形式为 “ODBC;DSN=MyDataSource”。显然,用DAO访问象FoxPro这样的数据库时,直接打开比把它当作ODBC数据源打开要省事。

  支持DDLDAO对数据库编程良好支持的一个重要体现。DDL(Data Definition Language)SQL术语中叫做数据定义语言,它用来完成生成、修改和删除数据库结构的操作。ODBC类只支持DML(Data Manipulation Language,数据操作语言),不支持DDL,所以用ODBC类只能完成数据的操作,不能涉及数据库的结构。要执行DDL操作,只有通过ODBC API。而DAO类同时提供了对DMLDDL的支持,这意味着程序可以使用DAO类方便的创建数据库及修改数据库的结构。

  与ODBC相比,DAO提供了一些新类来加强其功能,这些新类包括:

CDaoTableDef类提供了对表的结构的定义。调用CDaoTableDef::Open可以获得表的结构定义。调用CDaoTableDef::Create可以创建一张新表,调用CDaoTableDef:: CreateField可为表添加字段,调用CDaoTableDef::CreateIndex可以为表添加索引。调用CDaoTableDef::Append可以把新创建的表保存到数据库中。

CDaoQueryDef类代表一个查询定义(Query definition),该定义可以被存储到数据库中。

CDaoWorkspace提供了数据工作区(Workspace)。一个工作区可以包含几个数据库,工作区可以对所属的数据库进行全体或单独的事务处理,工作区也负责数据库的安全性。如果需要,程序可以打开多个工作区。

  DAO的另一个重要特色在于它对Access数据库提供了强大的支持。由于DAO是基于Microsoft Jet引擎的,所以DAO肯定要在Access数据库上多作一些文章。例如,调用CDaoDatabase::Create可以直接建立一个MDB文件,代码如下所示:
m_db.Create(“C://MYDIR//MYDB.MDB”);

利用AppWizardClassWizard,用户可以方便地开发出性能优良的基于DAOAccess数据库应用程序。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值