荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Navy (壮志凌云), 信区: Database
标 题: Visual Basic 中的数据库操作(转)
发信站: BBS 荔园晨风站 (Sat Nov 28 21:57:46 1998), 转信
周治平
摘 要 该文就Visual Basic中如何使用Data Manager数据管理
桌面系统、Data Cont rol数据控制控件、Data Access Objects对象
变量3种方法访问数据库等内容进行了介绍, 并就一些常见的问题进
行了分析。
关键词 数据库 数据管理 数据控制 对象变量
采用VB进行基于Windows环境的应用软件开发,已成为当前一大编
程趋势。有许多介绍V B使用的资料,然而其中关于数据库操作的介绍
却较少。其实,对数据库的支持是VB最为引人瞩目的特点,也是最令程
序员关心的问题。以往的软件开发一般都是使用传统的编程语言(如C
、Pascal等)和通用数据库管理软件(如 dBASE、Foxpro等)进行混合
编程。使用VB提供的数据库访问功能,可以非常简便地结合多种语言
的功能,使程序员的注意力可以更多地集中在系统开发上 面。在VB中
可以访问常用的dBASE、Foxpro 2.0/2.5、Paradox、Betrieve和Acce
ss数据库,或者是通过ODBC方式访问MS SQL服务器、Oracle SQL服务
器、Sybase SQL服务器,以客户机/服务器方式进行工作。
下面从几个方面介绍一下VB中的数据库操作。
一、Data Manager数据管理桌面系统
通过VB主菜单下的DataManager选项,或在Windows中用程序管理
器直接启动程序DATAMG R.EXE,就可以使用VB提供的一个功能强大的
数据库访问工具(图1)。它提供创建、查询、编辑、重构、索引、排
序等操作数据库的方法,不必使用专门的工具,就可以打开各类数据表
格(图2),利用它来对数据进行快速处理。
使用Data Manager创建的数据库和Access的数据库互相兼容, 两
者采用的是同一种数据库引擎。
图1 数据管理器主菜单
图2 可操作的数据库类型
二、使用Data Control数据控制控件
VB工具箱中提供一个Data Control数据控制标准控件(图3),通过
在窗体上创建Data Co ntrol控件(图4),设置它们的属性,就可以生成
一个数据库应用程序。这是一种最为简便的访问已有数据库数据的方
法, 在打开数据库时,涉及6个属性,至少要设置其中的两个才能正常
工作。
图3 数据控件图标
图4 数据控制外观
1.Connect:确定所连接数据库的类型。仅当正在管理一个非Micr
osoft(不是Access类型)的数据库时才是必要的。
2.DatabaseName:指明数据库的名字,对不同类型的数据库,可能
是一个子目录,也可能是一个具体的文件名。
以上两个属性的设置见附表。
附表 数据控制的Connect和DatabaseName属性
3.Exclusive:设置多用户环境中的共享特性。当设置Fales时,
应使用DOS程序SHARE.E XE。
4.Options:确定多用户环境中用户的读写特性。
5.ReadOnly:使所打开的数据库为只读。
6.RecordSource:决定可以对哪些数据访问,可以输入一个表的名
字或一个MS AccessQu ery的名字或一个SQL语句。
7.Editmode: 指明当前数据库记录的编辑状态。
正确地设置Data Control的属性后,当运行程序时,VB会自动打开
相应的表;如果在窗体上创建了若干VB中称为绑定控制(Bound Contro
l)的一类控制,并设置了它们的DataSource和DataField属性,就建立
了它们与数据库的绑定关系。这时Data Control相当于一个表的指针
,在Data Control上移动这个指针,就指向数据库中的相应记录,所绑
定的控制中内容会自动更新;当在Bound Control中改变相应的内容,
也就可以相应改变数据库中字段的内容。全部过程几乎不需要编写程
序代码。
实际应用中可以在程序代码里灵活应用Data Control的属性设置
和Bound Control;VB中可以作为Bound Control的控制有TextBox、La
bel、Image、PictureBox、CheckBox等(如图5),应注意的是一旦在程
序中改变了Data Control的属性后,必须使用Refresh方法更新才能有
效。
图5 数据控件与绑定控件
三、采用对象变量访问数据库
VB专业版还提供在程序中生成各种对象来访问数据库,各种对象
必须通过DIM语句进行定义,每个对象变量Data Access Objects都有
相应的一系列属性和方法。最新的VB 4中允许使用对象变量如图6。
图6 允许使用的数据访问对象变量集合
只有使用对象方法才能生成一个新的数据库,生成新的表和索引,
当然也可以改变数据库的结构;这些都不能用Data Control控件完成
。要打开一个数据库,首先应用DIM定义一个Da tabase类型的变量,然
后用SET语句将相应的OpenDatabase函数的返回值赋于该变量,如下
Dim Db As Database
Set Db=OpenDatabase("C:\FOXPRO25",False,False,"Foxpro 2.
5")
当对数据库的记录进行操作时,VB提供了三种表示记录集合Recor
dset的方法。
1.Table对象变量
这是一个可读写的数据访问对象变量,包括了一个实际存在的表
中的所有记录,并可以通过设置对象变量的指针Index对数据库进行排
序。打开数据库可采用如下的方法:
Dim Tb As Table
Set Tb=Db.OpenTable("MY.DBF")
Tb.Index="bySERIAL"
2.Dynaset对象变量
通常是基于一个或多个表的某个条件查询的结果,一般使用SQL语
句产生所需要的对象, 例如:
Dim Ds As Dynaset
SQL$="SELECT * FROM MY.DBF WHERE Name="a" ORDER BY Seria
l"
Set Ds=Db.CreateDynaset(SQL$)
在DataControl中的RecordSet实际就是一个Dynaset对象。
3.Snapshot对象变量
与Dynaset对象类似,它也是基于一个或多个表的查询的结果。但
它是一个静态的记录集合,一经建立就不能改变。可用于对一个特定
记录集的快速浏览,其属性和对象方法都比Tab le对象和Dynaset对象
要少得多。
Dim Sn As Snapshot
SQL$="SELECT * FROM MY.DBF WHERE Name="a" ORDER BY Seria
l"
Set Sn=Db.CreateSnapshot(SQL$)
四、数据访问的实例
以下分别采用生成对象变量方法在C盘根目录下创建一个FoxPro
数据库MY.DBF,包括Ser ial和Name两个字段,并添加数条记录;而后用
Data Control方法对其进行访问,Bound Contr ol文本框Text1、Text
2相应于数据控制Data1的Serial和Name字段。当鼠标在Data1的4个控
制箭头上按动时,就可以在文本框内看到数据库记录的变化。
******采用对象变量方法******
Sub Form-Load()
Dim Db As Database
Dim Td As TableDef
Dim Fld1 As Field
Dim Fld2 As Field
Dim Tb As Table
Dim i As Integer
' 为访问FoxPro数据库建立一个对象变量
Set Db = OpenDatabase("C:\", False, False, "FoxPro 2.5")
' 创建一个新的数据库.
Set Td = Db.CreateTableDef("MY")
' 向新库中添加字段.
Set Fld1 = Td.CreateField("Serial", dbText, 2)
Td.Fields.Append Fld1
Set Fld2 = Td.CreateField("Name", dbText, 8)
Td.Fields.Append Fld2
' 保存所建立的数据库结构
Db.TableDefs.Append Td
' 生成一个Table对象变量
Set Tb = Db.OpenTable("MY.DBF")
' 往数据库中增加记录
For i = 1 To 26
Tb.AddNew
Tb!Serial = i
Tb!Name = Chr(64 + i) & i
Tb.Update
Next i
' 关闭数据库,释放对象变量所占用的资源
Tb.Close
Db.Close
'******采用Data Control方法******
在窗体上画出一个数据控制Data1和两个文本框Text1、Text2,进
入属性窗口:
设置Data Control的基本属性
Connect = "FoxPro 2.5"
DatabaseName = "C:"
RecordSource = "MY.DBF"
设置Bound Control的绑定属性
DataSource="Data1"
DataField="Serial" ==>Text1
DataField="Name" ==>Text2
图7 Data Control 运行窗口
完成后按F5运行,可见到图7所示窗口从中可以看到采用Data Con
trol方法对一般性数据查询访问非常方便,几乎不要 编写任何程序码
就能完成工作。然而,要达到对数据库的各项复杂操作,还是应使用程
序代码;无论是生成对象变量或Data Control方法,VB都提供了许多控
制属性、对象方法和所能响应的事件过程,使程序员能够灵活地采用
它们,达到理想的设计效果。
五、常见问题
由于采用VB开发是一个相对简便的工作,稍有编程经验的读者都
可以进行练习。在这里要指出的一点是,使用VB版本开发出的软件,当
编译成EXE文件后,使用时可能会出现不能访问数据库,并提示"Couldn
't find installable ISAM"。主要问题在于驱动数据库的动态链接
库DLL文件没找到,这是VB系统对特定数据库进行处理所必不可少的接
口函数。一个原因可能在VB.INI 或应用程序的INI文件中缺少相应的
定义,另一个原因是程序按默认的方式找不到这样的INI文件。可以通
过在程序码中使用语句SetDataAccessOption 1,"INI 文件的全路径
文件名"来指定和编辑INI文件。
在[Installable ISANs]段添加如下定义:
Foxpro2.0=C:\WINDOWSSYSTEM\XBS110.DLL
Foxpro2.5=C:\WINDOWSSYSTEM\XBS110.DLL
dBASE=C:\WINDOWSSYSTEM\XBS110.DLL
dBASE=C:\WINDOWSSYSTEM\XBS110.DLL
六、结束语
以上只是在VB中使用数据库的一些基本方法及其介绍,感兴趣的
读者可以通过一些经常的编程练习和参考VB的在线帮助来掌握使用。
笔者曾经采用VB强大的数据库访问功能,开发出了一些Windows应用程
序,不仅有一般性的信息管理系统,也有用于较为复杂的实时动态网络
系统。实践证明对于在较短时间内设计出一个界面丰富、功能齐全又
比较成功的数据库应用软件,VB是一个不错的选择。
--
█我不知从何开口 时间却不停地流逝 █
█虽只是老生常谈 却教我欲言又止 █
█只是因为你太好 令我无法坦白说爱你█
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.15]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店