VB连接数据库

2010-06-13 11:32张妍垚孙曦东
微处理机 2010年3期
关键词:窗体数据源控件

张妍垚,孙曦东

(中国电子科技集团公司第四十七研究所,沈阳110032)

1 引言

器件目录数据库系统开发设计的目的是为了提高长期以来器件数据散乱、查找困难等问题。随着计算机技术的发展及其在数据库上的强大应用,能够帮助创建出完备的器件目录的应用程序。

2 引入数据库软件的原由

在VB编程中常要与数据库打交道,虽然可以选择各种数据库格式,但对于数据量较小的应用,一般选用Access作为数据库。因为Access数据库比较简单,功能也比较齐全,数据的备份、拷贝都很方便,且程序发布时不需要额外单独安装其它的数据库管理软件。因此,在功能能够满足要求的条件下,Access数据库往往成为小型数据库软件的首选。而且最容易使用的还是Visual Basic的数据库格式—Microsoft Access,因为 Visual Basic与Microsoft Access互相支持,可以使用丰富的特性集。

3 数据库基本概念

3.1 表

表是由行和列组成的数据集合,行叫做记录(Record),列叫做字段(Field)。

3.2 关系

所谓表和表之间的关系,一般情况下就是指某个表中的主关键字和另外一个表中的外关键字之间的对应关系。

3.3 查询

查询不是数据库中存储的表,而是按照各种规则和要求“查”出来的表。

4 VB数据库访问技术

Jet数据库引擎(Microsoft Joint Engineering Technologe)是应用程序和数据库之间的一种接口。它将与数据库相关的内容管理、游标管理和错误处理等具体而复杂的细节问题抽象为一个既高度一致又相对简化的编程接口。对所支持的数据库提供统一的外部接口,将对记录的操作转化为对数据库的物理操作。基于VB的数据库应用程序从逻辑上可分为三部分:用户接口、数据库引擎和数据库存储。由用户接口实现对具体数据库的连接,通过数据库引擎完成数据库存储。

ODBC Direct技术能给应用程序数据库访问加入全新的视角,可以检索一个数据库的大量信息。应用程序向ODBC发出SQL语句并接收作为语句结果的数据。数据源是已安装的数据库服务器,ODBC把特殊的ODBC驱动程序和一个指定的数据库联合起来,数据源定位在本地硬盘或网络上。

最主要的就是用Active X数据对象ADO(active x data objects)这种新的数据访问标准代替了原有的访问对象DAO(date access object)和远程数据访问对象RDO(remote date objects)。

5 ADO组件

Microsoft ActiveX Data Objects(ADO):使客户端应用程序能通过OLE DB提供者访问和操作数据库服务器中的数据。

ActiveX Data Objects Extensions for DDL and Security(ADOX):将ADO扩展为包括创建、修改和删除的模式对象,如表格和过程,以及包括用于维护用户和组以及管理对象权限的安全对象。

ActiveX Data Objects(Multidimensional)(ADO MD):将ADO扩展为包括指定到多维数据的对象,并允许浏览多维模式、查询立方和检索结果。

ADO具有高度的灵活性,它可以使用相同的编程模式连接到不同的数据提供者,而不管给定提供者的特定特性,具有较低的内存占用率。

具有远程数据服务(RDS)功能,通过RDS可以在一次往返过程中将数据从服务器移动到客户端应用程序或Web页,并在客户端对数据进行处理后将更新结果返回服务器。

同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建,也可以只创建一个“Connection”对象,然后由多个独立的“Recordset”对象来使用它。

ODBC本身是以SQL Server、Oracle等关系数据库作为访问对象,而OLE DB则不仅限于此,它还可以对电子邮件、文本文件、复合文件、数据表等各种各样的数据通过统一的接口进行存取。

6 VB6.0在器件目录数据库中的应用

首先在Access中创建一个名为“mulu”的表,该表由以下9个字段组成:ID为Access的“mulu”表的主键字段,然后直接设置后8个字段,在输入完了mulu表的各个字段之后,关闭表设计器,Access会提示是否要进行保存表,选择“是”,然后为表起名为“mulu”。因为没有定义主键(primary Key),Access会提示为表加上一个主键,按提示将ID设置为主键即可。设置完以上字段后,再调用Visual Basic程序。

调用Visual Basic程序先安装ADO,在VB的“工程”/“引用”对话框中选择“ActiveX Data Object 2.8 Library”(ADODB)。并将ADO数据控件添加到工具箱中,选择“工程”菜单中“部件”项,选中“Microsoft ADO Data Control 6.0(OLEDB)”,并单击“确定”按钮。

然后创建一个新窗体,设计新窗体属性。在工具箱中双击ADO数据控件的图标(Adodc),向窗体中添加一个ADO控件,设计ADO控件属性,选择使用连接字符串后,选择生成。在提供程序中选择“Microsoft OLE DB Provider for ODBC Drivers“后,选择下一步。连接中指定数据源选择使用数据源名称,然后在下拉列表中选择MS Access Database,在输入要使用的初始目录中输入记录源中Access数据库的名称后,测试连接,提示测试连接成功后点击确定,否则重新输入。命令类型选择2-adCmdTable,表或存储过程名称选择Access数据库的名称,即设置完ADO属性。

对每一个想访问的Access数据库字段,在窗体上添加一个文本框,并且把VB6.0的数据控件对象与数据绑定控件一起,把数据控件放在窗体上,并设置属性:第一个属性DataSource,返回或设置控件的数据源。第二个属性DataMember属性,返回或设置要使用的源中的指定数据集。第三个属性DataField,返回或设置要绑定控件的指定字段。作为绑定到窗体控件中数据的一个直接数据源,要将数据环境对象中一个“用户”Command对象的字段“用户名”绑定到窗体中的一个TextBox控件中去,则需要执行下列步骤:先将一个TextBox控件放到Visual Basic窗体中;在“属性”窗口中,单击Datasource(“数据源”)属性,选择您想绑定到控件的 DataEnvironment对象,如“Adodc1”;单击 DataMember属性,并选择数据环境中的Command对象“rst用户”;单击DataField属性,从绑定到控件的“rst用户”Command对象中选择字段“用户名”。这样,就完成了绑定工作。还有一种更快捷、简便的方法,就是将需要绑定的Command对象拖到窗体中,则窗体就会自动生成这个对象所有字段的标签(Label)名和数据操作及显示区(TextBox)。

编程访问数据环境设计器中的对象。要从一个Visual Basic窗体中编程访问数据环境中的对象“用户”记录,则按照以下步骤执行:在窗体中建一个ListBox控件,在控件中输入目录名。附加到这个控件的代码是用于将“用户”表中的记录在其余的Text-Box控件中显示。则在按钮的Click事件中添加下面的代码:

用户.Text=rst.Fields(索引标识)

示意程序如下(程序示意图如下):

Dim con As ADODB.Connection

Dim rst As ADODB.Recordset

Dim strsql,strsql1 As String

Set con=New ADODB.Connection

Set rst=New ADODB.Recordset

con.ConnectionString="Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Initial Catalog=e:mulu.mdb"

con.Open

strsql1="select*from[mulub]where[name]like '" & Trim(List1.Text)& " '" 'rst.Open strsql1,con,adOpenKeyset,adLockOptimistic

With rst

.CursorLocation=adUseClient

.CursorType=adOpenDynamic

.LockType=adLockOptimistic

.Open strsql1,con,3,3

End With

If rst.RecordCount > 0 Then

Text4.Text=rst.Fields(0)

If Not IsNull(rst.Fields(2))Then

Text1.Text=rst.Fields(2)

Else

Text1.Text=""

End If

If Not IsNull(rst.Fields(3))Then

Text2.Text=rst.Fields(3)

Else

Text2.Text=""

End If

If Not IsNull(rst.Fields(4))Then

Text3.Text=rst.Fields(4)

Else

Text3.Text=""

End If

If Not IsNull(rst.Fields(6))Then

Text5.Text=rst.Fields(6)

Else

Text5.Text=""

End If

Else

MsgBox("没发现项目名称")

End If

rst.Close

con.Close

End sub

图1 程序简单示意图

从上面例子可以看出,与一个ADO Recordset关联的所有方法都可以应用于rst用户,例如添加、更新、删除和遍历记录的方法。

7 结束语

从上面说明可以看出,VB中的数据环境就象一个大的数据控件一样,它可以在不同的窗体中引用和操作。VB提供了强有力的数据库存取能力,将WINDOWS的各种先进特性与强大的数据库管理功能有机地结合在一起。VB有很多有关文本文件的特性,可以使用这些功能打开文本文件并且读取文本数据。这对于我们开发应用程序来说,无疑提供了一个很好的数据工具。

[1][美]E Winemiller,J Roff,B Heyman,R Groom,著.Visual Basic 6.0 数据库开发[M].顾斌,杨德斌,译,北京:清华大学出版社,2001.

[2]林永,张乐强.Visual Basic 6.0用户编程手册[M](第二版).北京:人民邮电出版社,2002.

[3]李楠,李志强.Visual Basic 6.0入门与提高[M].北京:人民邮电出版社,1998.

猜你喜欢
窗体数据源控件
基于.net的用户定义验证控件的应用分析
试谈Access 2007数据库在林业档案管理中的应用
关于.net控件数组的探讨
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
基于真值发现的冲突数据源质量评价算法
分布式异构数据源标准化查询设计与实现
巧设WPS窗体控件让表格填写更规范
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
WinCE.net下图形用户界面的开发