第8章-使用DAO访问数据库课件.ppt
《第8章-使用DAO访问数据库课件.ppt》由会员分享,可在线阅读,更多相关《第8章-使用DAO访问数据库课件.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 使用DAO访问数据库第8章 使用DAO访问数据库8.1 DAO层次结构层次结构8.2 DAO对象对象8.3 DAO编程实例编程实例8.1 DAO8.1 DAO层次结构层次结构DAO提供两种不同的编程模型结构:提供两种不同的编程模型结构:Microsoft Jet Workspaces DAO模型模型ODBC Direct Workspaces DAO模型。模型。数据访问对象模型是数据访问对象模型是Jet为数据库引擎的面向对象为数据库引擎的面向对象的接口。由一系列数据库对象和对象的集合按的接口。由一系列数据库对象和对象的集合按一定的层次结构组成。其层次结构和关系数据一定的层次结构组成。其
2、层次结构和关系数据库的逻辑视图相符合。数据访问对象类以分层库的逻辑视图相符合。数据访问对象类以分层结构来组织,其中的大多数类属于集合类。在结构来组织,其中的大多数类属于集合类。在分层结构中,它又属于其上层的另一个类。分层结构中,它又属于其上层的另一个类。DAO的层次结构如图的层次结构如图8.1所示。所示。8.1 DAO8.1 DAO层次结构层次结构图8.1 DAO层次结构模型图8.2 DAO8.2 DAO对象对象8.2.1 DBEngine对象8.2.2 Workspace对象8.2.3 Database对象8.2.4 TableDef对象8.2.5 Recordset对象8.2.6 Quer
3、yDef对象8.2.7 Field对象8.2 DAO8.2 DAO对象对象DBEngine对象对象DBEngine对象相当于对象相当于Jet数数据库引擎,它是不需要创据库引擎,它是不需要创建就已经存在的对象,而建就已经存在的对象,而且一个应用界面只能有一且一个应用界面只能有一个个DBEngine对象。对象。DBEngine对象位于对象位于DAO对象的顶层,其层次结构对象的顶层,其层次结构如图如图8.2所示。所示。图8.2 DBEngine对象8.2 DAO8.2 DAO对象对象DBEngine对象的属性对象的属性DefaultUser:缺省用户名称。进行数据:缺省用户名称。进行数据库访问时设置
4、的缺省用户名称,是一个库访问时设置的缺省用户名称,是一个长度小于长度小于20个字符的个字符的String变量,变量,DefaultUser的缺省值是的缺省值是Admin。DefaultPassword:缺省用户口令。进行:缺省用户口令。进行数据库访问时设置的缺省用户口令,数据库访问时设置的缺省用户口令,DefaultPassword的缺省值是空字符串。的缺省值是空字符串。SystemDB:系统数据库名称。本地:系统数据库名称。本地Microsoft Jet数据库工作组文件,缺省值数据库工作组文件,缺省值为为System.mdw8.2 DAO8.2 DAO对象对象IniPath:初始文件位置。设
5、置或返回:初始文件位置。设置或返回Windows注册文件中存有注册文件中存有Microsoft Jet数据库引擎值的键数据库引擎值的键的有关信息。的有关信息。LoginTimeout:注册超时。在注册进入一个:注册超时。在注册进入一个ODBC数据库时,系统发出错误信号前等待的时数据库时,系统发出错误信号前等待的时间。缺省值为间。缺省值为20秒,如果设为零,系统将永久等秒,如果设为零,系统将永久等待待Version:DAO版本信息。用来返回正在使用的版本信息。用来返回正在使用的DAO的版本信息的版本信息DefaultType:Workspace对象的类型。设置或返回对象的类型。设置或返回一个值,
6、该值为创建下一个工作区对象指出默认连一个值,该值为创建下一个工作区对象指出默认连接类型(工作区类型)。该属性的取值有两个:接类型(工作区类型)。该属性的取值有两个:DbUseJet表示创建连接到表示创建连接到Microsoft Jet数据库引擎数据库引擎的工作区对象,的工作区对象,DbUseODBC表示创建连接到数据表示创建连接到数据源的工作区对象。源的工作区对象。8.2 DAO8.2 DAO对象对象DBEngine对象的方法对象的方法CreateWorkspace:创建一个新的:创建一个新的Workspace对象。可以选用参数来设对象。可以选用参数来设置置Workspace的类型以及访问的用
7、户的类型以及访问的用户名称和访问的口令。名称和访问的口令。CompactDatabase:压缩或转换一:压缩或转换一个关闭的个关闭的Microsoft Jet数据库。数据库。RegisterDatabase:将:将ODBC数据源数据源的连接信息注册到的连接信息注册到Windows。8.2 DAO8.2 DAO对象对象RepairDatabase:修复一个关闭的:修复一个关闭的Microsoft Jet数数据库。据库。Idle:挂起数据处理进程,使:挂起数据处理进程,使DBEngine处于空闲状处于空闲状态态8.2 DAO8.2 DAO对象对象CreateWorkspace方法用于创建一个具有指
8、定类型、用户方法用于创建一个具有指定类型、用户名称和口令的名称和口令的Workspace对象。其语法如下:对象。其语法如下:Set Workspace对象变量对象变量=DBEngine.CreateWorkspace(name,user,password,type)CreateWorkspace的参数有的参数有name、user、password、type,说明如下。,说明如下。name:String类型,用于指明类型,用于指明Workspace的名称。的名称。user:String类型,用于指明访问的用户名称。类型,用于指明访问的用户名称。password:String类型,用于指定访问的口
9、令。类型,用于指定访问的口令。type:常量,指明所建立的:常量,指明所建立的Workspace的类型,取值有两个,的类型,取值有两个,分别是分别是dbUseJet(创建(创建Microsoft Jet工作区)和工作区)和dbUseODBC(创建(创建ODBC工作区)。工作区)。8.2 DAO8.2 DAO对象对象Workspace对象Workspace对象的属性对象的属性Name:设置或返回用户定义的:设置或返回用户定义的Workspace对象对象的名称。的名称。Type:Workspace对象的类型。如果连接对象的类型。如果连接Microsoft Jet数据库,则为数据库,则为Micros
10、oft Jet Workspace对象;如果连接对象;如果连接ODBC数据库,则为数据库,则为ODBC Workspace对象。对象。(3)UserName:拥有该:拥有该Workspace对象的用户或对象的用户或用户组的名称。用户组的名称。(4)LoginTimeout:在注册进入一个:在注册进入一个ODBC数据数据库时,系统发出错误信号前等待的时间,缺省值库时,系统发出错误信号前等待的时间,缺省值为为20秒。如果设为零,系统将永久等待。秒。如果设为零,系统将永久等待。8.2 DAO8.2 DAO对象对象图8.4 Workspace集合和对象8.2 DAO8.2 DAO对象对象Workspa
11、ce对象的方法对象的方法CreateDatabase:在一个指定的工:在一个指定的工作区中建立一个新的作区中建立一个新的Jet数据库对象数据库对象(只能是(只能是.mdb,且存放在磁盘上),且存放在磁盘上),并把数据库对象作为函数值返回。并把数据库对象作为函数值返回。该方法只能创建该方法只能创建Jet数据库(只能是数据库(只能是.mdb,且存放在磁盘上),也是代,且存放在磁盘上),也是代码创建码创建Jet数据库的惟一方法。数据库的惟一方法。8.2 DAO8.2 DAO对象对象CreateGroup:在一个指定的工作区建立:在一个指定的工作区建立一个新的组一个新的组Group对象。对象。Crea
12、teUser:在一个指定的工作区建立一:在一个指定的工作区建立一个新的组个新的组User对象。对象。OpenConnection:在:在ODBC数据源上打数据源上打开一个开一个Connection对象(仅用于对象(仅用于ODBC Direct Workspace,它通过,它通过Microsoft Jet 数据引擎直接访问数据引擎直接访问ODBC数据源的数据源的Workspace)OpenDatabase:打开一个现在的数据库。:打开一个现在的数据库。可以打开可以打开Jet3.51支持的所有类型的数据库。支持的所有类型的数据库。8.2 DAO8.2 DAO对象对象BeginTrans:将该语句后
13、到:将该语句后到CommitTrans语句前的一系列的数据操作作为一个事务语句前的一系列的数据操作作为一个事务来完成,以便于在需要的时候使用来完成,以便于在需要的时候使用Rollback方法回退这一系列数据操作。方法回退这一系列数据操作。CommitTrans:结束当前的事务并且将所:结束当前的事务并且将所进行的修改保存到数据库中。进行的修改保存到数据库中。Rollback:回退从:回退从BeginTrans开始到开始到CommitTrans提交的事务。提交的事务。Close:关闭该:关闭该Workspace对象以及它的任对象以及它的任何子对象,即将何子对象,即将Workspace对象从内存中
14、删对象从内存中删除。除。8.2 DAO8.2 DAO对象对象 Database对象对象Databases集合指一系列集合指一系列的的Database对象,每个对象,每个Database对象映射一个对象映射一个打开的物理数据库。打开的物理数据库。Database集合和对象的集合和对象的层次结构图如图层次结构图如图8.5所示。所示。其中,其中,TableDef对象为对象为Database对象子集的默对象子集的默认对象。认对象。图8.5 Database集合和对象8.2 DAO8.2 DAO对象对象Database对象的属性对象的属性Name:设置或返回数据库的完整路径和:设置或返回数据库的完整路径
15、和文件名。文件名。Connect:设置或返回打开外部数据库时:设置或返回打开外部数据库时的连接字符串(的连接字符串(Connect string)。)。Connection:设置或返回:设置或返回ODBC连接属性,连接属性,包括用户名、口令等。包括用户名、口令等。Transactions:返回是否可以使用:返回是否可以使用BeginTrans、CommitTrans或或RollBack,实现批量写入,取消写入。实现批量写入,取消写入。8.2 DAO8.2 DAO对象对象QueryTimeout:设置当使用:设置当使用ODBC调调用打开客户服务器结构的数据库时,用打开客户服务器结构的数据库时,操
16、作等待的时间。操作等待的时间。CollatingOrder:返回数据库中文排序:返回数据库中文排序方式。方式。Count:返回:返回Database对象的数量。对象的数量。RecordsAffected:返回执行:返回执行Execute命命令后,被操作的记录数。令后,被操作的记录数。Version:返回所打开数据库的版本号。:返回所打开数据库的版本号。8.2 DAO8.2 DAO对象对象Updatable:返回是否可对数据库进行写入或删除:返回是否可对数据库进行写入或删除数据操作。数据操作。Replicable:设置或返回数据库或数据库对象可以:设置或返回数据库或数据库对象可以被复制。被复制。
17、V1xNullBehavior:设置是否将:设置是否将“Text”类型或类型或“Memo”类型的字段的空字符串转换为类型的字段的空字符串转换为Null,其值,其值为为True时,进行转换。时,进行转换。8.2 DAO8.2 DAO对象对象Database对象的方法对象的方法(1)OpenRecordset:打开:打开Recordset记录集记录集对象。它是对象。它是Database对象诸方法中使用最对象诸方法中使用最多的一个方法。多的一个方法。语法:语法:Set recordset=object.OpenRecordset(source,type,options,lockedits)参数参数s
18、ource:字符串型,指定新建的:字符串型,指定新建的Recordset对象的记录源,可以是表名、查询名或一个返对象的记录源,可以是表名、查询名或一个返回若干记录的回若干记录的SQL语句,对于语句,对于Microsoft Jet数据库数据库中的表类型的中的表类型的Recordset对象,它只能是表名。对象,它只能是表名。8.2 DAO8.2 DAO对象对象参数参数type:可选,指定:可选,指定Recordset对象的类型,对象的类型,它可取表它可取表8.1中的值。中的值。参数参数options:可选,指定:可选,指定Recordset对象的其它对象的其它属性,它可取表属性,它可取表8.2中的
19、值。中的值。参数参数lockedits:可选,指定:可选,指定Recordset对象的锁对象的锁定类型,它可取表定类型,它可取表8.3中的值。中的值。8.2 DAO8.2 DAO对象对象常量常量说明说明dbOpenTable打开表类型打开表类型Recordset对象(仅对对象(仅对Microsoft Jet workspace有效)有效)dbOpenDynamic打开动态(打开动态(Dynamic)类型)类型Recordset对象(仅对象(仅对对Microsoft Jet workspaces有效),类似有效),类似ODBC动态游标动态游标dbOpenDynaset打开动态集(打开动态集(dy
20、naset)类型)类型Recordset对象对象dbOpenSnapshot打开一个快照(打开一个快照(Snapshot)类型)类型Recordset对象对象dbOpenForwardOnly 打开一个单向向前打开一个单向向前Recordset对象对象表8.1 Type参数的取值8.2 DAO8.2 DAO对象对象常量说明dbAppendOnly只允许追加新记录dbSQLPassThrough传递一个SQL语句dbSeeChanges当别的用户在编辑时,企图修改数据,会产生一个运行错误dbDenyWrite禁止写dbDenyRead禁止读dbForwardOnly只能向前(为了与以前版本兼容)
21、dbReadOnly只能读dbRunAsync运行异步查询(只针对ODBC Direct Workspace有关)dbExecDirect跳过SQL Prepare直接调用SQL Exec Direct运行查询dbInconsistent允许不一致修改dbConsistent只允许一致性修改表8.2 Option参数的取值8.2 DAO8.2 DAO对象对象常量说明dbReadOnly只允许读dbPessimistic在多用户环境下,使用悲观锁定策略,即一旦使用Edit方法,将锁定编辑的页dbOptimistic在多用户环境下,使用乐观锁定策略,即直到使用Update方法时才锁定所编辑的页db
22、OptimisticValue用基于行的乐观一致性锁定策略(只针对ODBC Direct Workspace有效)dbOptimisticBatch使用批量乐观更新(只针对ODBC Direct Workspace有效)表8.3 lockedits参数的取值8.2 DAO8.2 DAO对象对象Close:关闭:关闭DAO对象。对象。CreateProperty:创建一个新的用户定义的:创建一个新的用户定义的Property对象,只对对象,只对Microsoft Jet Wordspace有有效。效。CreateQueryDef:创建一个新的查询定义:创建一个新的查询定义QueryDef对象。对
23、象。CreateTableDef:创建一个新的表定义:创建一个新的表定义TableDef对象。对象。CreateRelation:创建一个新的联系:创建一个新的联系Relation对象,对象,只对只对Microsoft Jet Wordspace有效。有效。8.2 DAO8.2 DAO对象对象Execute:在一个指定的连接或数据库:在一个指定的连接或数据库对象上运行一个功能查询或执行一个对象上运行一个功能查询或执行一个SQL语句。语句。NewPassword:改变口令。:改变口令。MakeReplia:复制数据库,只对:复制数据库,只对Microsoft Jet Wordspace有效。有效
24、。Synchronize:使两个复制同步,只对:使两个复制同步,只对Microsoft Jet Wordspace有效。有效。8.2 DAO8.2 DAO对象对象 TableDef对象对象TableDef集合和对象的层集合和对象的层次结构图如图次结构图如图9.6所所示。它包括字段示。它包括字段(Field)和索引)和索引(Index)两个对象。)两个对象。图8.6 TableDef集合和对象8.2 DAO8.2 DAO对象对象TableDef对象的属性对象的属性Name:设置或返回:设置或返回TableDef对象的名称。对象的名称。可以和数据库中表的名称不一样。可以和数据库中表的名称不一样。A
25、ttributes:设置或返回:设置或返回TableDef对象的特对象的特性。如是否打开为打开为独占方式;该表性。如是否打开为打开为独占方式;该表是否是由是否是由Jet数据库引擎提供的系统表等等。数据库引擎提供的系统表等等。ConflictTable:冲突表的名字,该表包含:冲突表的名字,该表包含了两个副本在同步期间相互冲突的数据库了两个副本在同步期间相互冲突的数据库记录。记录。8.2 DAO8.2 DAO对象对象DataCreated:返回创建表的日期和时:返回创建表的日期和时间。是日期变量型。间。是日期变量型。LastUpdated:返回最近一次修改表的。:返回最近一次修改表的。日期和时间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 DAO 访问 数据库 课件
限制150内