使用Data控件访问数据库

上传人:cl****1 文档编号:507565482 上传时间:2023-05-07 格式:DOCX 页数:11 大小:249.92KB
返回 下载 相关 举报
使用Data控件访问数据库_第1页
第1页 / 共11页
使用Data控件访问数据库_第2页
第2页 / 共11页
使用Data控件访问数据库_第3页
第3页 / 共11页
使用Data控件访问数据库_第4页
第4页 / 共11页
使用Data控件访问数据库_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《使用Data控件访问数据库》由会员分享,可在线阅读,更多相关《使用Data控件访问数据库(11页珍藏版)》请在金锄头文库上搜索。

1、1使用Data控件访问数据库VB具有数据库连接和数据处理功能,因此能够作为数据库应用程序的开发环境。 用用开发数据库应用程序有以下优点:简单。VB提供了数据控件,利用此控件可以方便的访问数据库,浏览数 据库中的数据。灵活。VB可以和多种数据库相连,通过ODBC,甚至可以象使用数据库 表格一样使用文本文件和EXCEL工作表。可扩充性。在VB中可以用控件的方式对VB的功能进行扩充。开发过程中,使用VB作为数据库前端。数据控件数据控件已经集成到了VB的工具箱里,可以直接使用。数据控件的按扭为:置, 在应用窗体中添加控件如下图所示:使用数据控件不用编程就可以实现下列操作:与本地或者远程数据库建立连接对

2、连接的数据库执行SQL查询,打开指定的数据表或定义记录集。把数据字段传送到各种约束控件,并可以在约束控件中显示或修改数据字 段的值。根据约束控件中数据的变化,添加新记录或更新数据库。捕获访问数据库时出现的错误。关闭数据库。数据控件的属性数据控件具有以下一些属性:(1) ConnectH性:指定数据库类型,VB可识别的数据库有:Access的MDB及 件,DBASE 数据库文件,Foxpro的DBF文件,Borland ParadOfi数据库文件, ODBC数据库等。(2) DatabaseName属性:指定具体使用的数据库。如果连接的是MDB数据库文 件,就把该属性设置为文件名,如果连接的是F

3、oxpro,dBase,Parad数据库,就把 该属性设置为相应的子目录的名称。Data1.DataBaseName=C:Program FilesMicrosoft Visual StudioVB98Biblio.mdb Data1.RecordSource=Select * from Author(3) Recordtyp类型:确定记录类型。如果是Access数据库,就设置RecordType 为Table记录集合类型;如果是其他类型的数据库就选择Dynaset记录集合类型, 如果只需要读数据的话,就选择Snapshot记录集合类型。(4) RecordSourc属性。指定具体可访问的数据

4、。例如表,存储的查询或者一个 SQL语句等。(5) EofAction和BofActioni性,指定当浏览记录集时,到头或者到尾该如何处 理。用户可以选择是保持,还是触发一个事件等。(6) Readonly属性:控制是否对记录集进行写操作。数据控件的方法(1) Move方法:MoveFirst, MoveLast, MoveNext, MovePrevious, Move(n)(2) Fin方 法:FindFirst, FindLast, FindNext, FindPrevious(3) See方法:(4) Refresh 法:(5) Clos方法:关闭数据库连接。数据的输入与更新(1) 增

5、加记录,使用Addnew方法,分三步:调用Addnew方法,给各字段赋值, 调用Update方法,确定所作的添加,将数据写入数据库中。(2) 删除记录,使用Deleted法,分三步:定位记录,调用Delete方法,移动记 录指针。(3) 编辑记录:分四步:定位记录,调用Edit方法,给各字段赋值,调用Update 方法,确定所作的修改。如果放弃修改,就调用Refresl方法。用控件显示数据在VB中,通过与Data控件关联的控件来显示数据,为了使控件能够与数据控件 关联,必需设置下面的两个属性:DataSourcdi性和DataFiel属性。此外,还可以使用一些高级约束控件,这些控件包括:数据库

6、网格控件(DataGrid) 数据库组合框控件和数据库列表框(DataLis控件。请观看演示。2使用DAO访问数据库DAO就是数据库访问对象模型。它提供了一些对象,通过这些对象的属性和方 法就可以实现对数据库的访问。下图就是DAO的一个模型图。使用DAO之前必须将对象库引入到工程中去,方法如下图所示:使用RecordSe对象一、Recordse对象的创建在DAO对象一览图中我们可以看到Recordset象是Database对象的子对象,那 么在建立Recordse对象之前需要先建立Databsse对象,这就如同在C+中要先建 立父类才能建立子类一样,这里有些读者可能会问,在Databases象

7、上还有两层 对象不需要建立吗?在VB的数据库编程,DBEngine对象是最顶级的数据库访问 对象,有点象JAVA中的超类概念,是不需要建立,其他DAO对象都是对它的 继承,至于Workspace对象,VB中缺省建立了一个,如果不设计到多个数据库 环境的话(例如:在程序中同时使用ODBC和Je),是不需要关心的。首先必须声明一个Recordset类型的变量然后将变量设置为OpenRecordset方 法返回的对象。OpenRecordset方法在 Database Connection TableDef QueryDef 以及已经存在 的 Recordset对象中使用。Connection和 D

8、atabase对象的 OpenRecordset方法的 语法如下:Set variable = database.OpenRecordset (source , type , options, lockedits )其它所有类型的对象的OpenRecordset方法的语法如下:Set variable = object.OpenRecordset (type , options ,lockedits ) 其中:variabl参数是新的Recordset对象的名称。database参数是一个打开的 Database或者Connection对象的名称,可用该对象创建新的Recordset对象。 o

9、bject参数是一个TableDef QueryDef或者现有的Recordset对象,我们用该对 象创建新的Recordset对象。source参数指定新的Recordset对象的记录来源。 source的值将成为新产生的Recordset对象的Name属性的值。用Connection 或者Database对象创建新的Recordset对象时,source参数可以是数据库中现 有的TableDef或QueryDef对象,或者为一个有效的、返回行的SQL查询或语 句。如果用TableDefQueryDef或者现有的Recordset对象创建新的Recordset对 象,那么对象自身将为新的记录

10、集提供数据源。Recordset对象有五种类型:表、动态集、快照、动态和仅向前表类型的Recordset对象是指当前数据库中的本地表或者Microsoft J创建的 外部数据库。在创建表类型的记录集时,数据库引擎打开实际表,后续的数据操 作都是直接对基本表进行的。只能对单个的表打开表类型的记录集,而不能对联 接或者联合查询打开。如果使用基本表创建的索引,就可以对表类型的 Recordset对象进行索引。与其它类型的Recordset对象相比,表类型的搜索与排 序速度最快。定位特定的记录时,Seek方法要快于Find方法。动态集类型的Recordset对象可以是本地的或者链接的表,也可以是返回的

11、行查 询结果。它实际上是对一个或者几个表中的记录的一系列引用。可用动态集从多 个表中提取和更新数据,其中包括链接其它数据库中的表。动态集类型具有一种 与众不同的特点:不同数据库的可更新联接。利用这种特性,可以对不同类型的 数据库中的表进行可更新的联接查询。动态集和它的基本表可以互相更新。如果动态集中的记录发生改变,同样的变化 也将在基本表中反映出来。在打开动态集的时候,如果其他的用户修改了基本表, 那么动态集中也将反映出被修改过的记录。动态集类型是最灵活的recordse类 型,也是功能最强的。不过,它的搜索速度与其它操作的速度不及表类型的 Recordset快照类型的Recordset对象包

12、含的数据是固定的,它反映了在产生快照的一瞬间 数据库的状态。从Microsoft 丁数据源得到的快照是不可更新的,从开放数据库 互连(ODBC)数据源得到的某些快照是可以更新的,这取决于后端数据库的能 力。与动态集类型和表类型的Recordset对象相比,快照的处理开销较少。因 此,它执行查询和返回数据的速度更快,特别是在使用ODBC数据源时。需要 注意的是,对于.mdb文件,在快照中用指针表示Memo和Long Binary字段 中的数据。仅向前类型的Recordset对象,有时被称为“向前滚动快照”或者“仅向前快 照”,提供了快照的一部分功能。它提供了最基本的Recordset对象功能,但

13、是 通常可以达到最快的速度。与快照类似,从Microsoft J得到的仅向前类型的 Recordset对象是不可更新的。另外,仅向前的快照只允许在记录中向前移动, 而不能向相反的方向移动。这种类型的Recordset对象不能被复制,而且只支持 Move 和 MoveNext 方法。动态类型的Recordset对象是从一个或几个基本表中查询到的结果集,对于返回 行的查询,可以在其中添加、修改或删除记录。另外,其它用户对基本表的添加、 删除和修改操作也将出现在您的记录集中。这种类型对应于ODBC的动态游 标。DAO能够根据记录集的数据源类型,以及打开记录集的方式,自动地设置缺省 的记录集类型。因此

14、,一般不需要指定记录集类型。然而,可以在OpenRecordset 方法中指定type参数,以取消缺省的类型。按照打开记录集的方式,下表中列出了可用的类型和缺省的类型。使用 Database对象的 OpenRecordset方法:Set rstNew = dbs.OpenRecordset(Data Source)如果Data Source数据库中的本地表,那么可以用表类型、动态集、快照和动 态类型的Recordset对象,缺省的记录集类型为表类型。如果Data Sourc为其 它类型,那么只能使用动态集和快照类型的Recordset对象,动态集类型为缺省 的类型。使用 TableDef对象的

15、 OpenRecordset方法。Set rstNew = tdfTableData.OpenRecordset如果tdfTableDat指的是Microsoft J数据库(.mdb)中的表,或者直接打开的 ISAM数据库,那么所有的五种类型都是可用的,表类型的记录集为缺省的类 型。如果tdfTableDat在 ODBC数据库中,或者是外部数据库中的链接表,那 么只能用动态集和快照类型的Recordset对象,动态集类型为缺省类型。使用 QueryDef 对象的 OpenRecordset方法:Set rstNew = qdfQueryData.OpenRecordset只能使用动态集和快照类

16、型的Recordset对象,动态集类型为缺省的类型。使用现有的Recordset对象的OpenRecordset方法:Set rstNew = rstExisting.OpenRecordset只能使用动态集和快照类型的Recordset对象。缺省的类型为现有的记录集的类 型,在上例中,即rstExistig类型。具体创建Recordset象的例子 以表为基础创建记录集用基本表创建Recordset对象的方法,取决于该表对于当前数据库是本地表,还 是位于另一个数据库中的链接表。用本地Microsoft J数据库中的表创建记录集下列程序代码使用OpenRecordset方法为一个表创建了表类型的Recor

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号