以前曾看过介绍如何在visual basic中 连接 和使用access 数据库 的技术文章,实际上在专业的 数据库 软件开发中,为了确保 数据库 中信息的安全,往往要求对 数据库 文件进行加密,以防止非法用户通过其它的常规手段将其打开。那么,在visual basic中如何建
以前曾看过介绍如何在visual basic中连接和使用access数据库的技术文章,实际上在专业的数据库软件开发中,为了确保数据库中信息的安全,往往要求对数据库文件进行加密,以防止非法用户通过其它的常规手段将其打开。那么,在visual basic中如何建立与加密的数据库的连接呢?笔者在开发本校的宿舍管理信息系统中,总结了一些方法和技巧,现写出来与同行交流。
一、建立数据库
因为在visual basic 6.0中有的数据库连接方式不支持access 2000版本格式的数据库,为了便于说明问题,本文所提的数据库以access 97版本数据库为例。
在microsoft access 97中建立一个数据库,如:ssgl.mdb,并设置密码,如:“1234”,再将数据库文件和vb中创建的工程文件放在同一目录下。
如果用户的计算机上只有access 2000的话,可以先在access 2000中建立ssgl.mdb数据库,并设置密码,再用access 2000中的“数据库实用工具”将数据库转换成access 97版本的格式。
当然也可以直接在visual basic 6.0集成开发环境中通过“可视化数据管理器”来创建数据库,再到access 97中设置密码。
通过对数据库文件设置密码,一般情况下,非法用户就不能用常规的手段打开数据库了,对数据库中的信息起到了一定的安全和保密作用。
二、连接加密的access数据库
在visual basic 6.0中,要建立与数据库的连接,可采用的技术手段很多,如:数据控件、数据对象、数据环境设计器等。开发人员可以根据自身的条件和用户的需求进行选择。
限于篇幅,下面只介绍加密的access数据库与没有加密的access数据库在连接时的不同之处。关于没有加密的数据库的连接及访问的方法读者可以参阅其它资料。
1、使用控件
① data控件
data控件是visual basic 6.0中的一个内置数据控件,可以通过设置data控件的connect、databasename、recordsource属性实现对数据库的连接和访问。 通过data控件连接加密的数据库的方法有两种:
一种方法是在设计状态时,在“属性窗口”中将data控件的connect属性的缺省值”access”改为”; pwd=1234”即可,其它属性的设置方法与没有加密的access数据库的连接相同。
另一种方法是在运行时,通过代码对connect属性赋值来实现。如:
data1.connect=”; pwd=1234”
data1.databasename=app.path + “ssgl.mdb”
其中,”1234”为access数据库文件ssgl.mdb的密码,下同。
②adodc控件
adodc控件是一个activex控件,它使用microsoft activex data objects(ado)创建到数据库的连接。使用adodc控件之前,要先将adodc控件添加到控件工具箱中。方法如下:在vb 6.0种选择“工程”菜单,再点击“部件”菜单项,在弹出的“部件”对话框中选中“microsoft ado data control 6.0(oledb)”选项即可。
通过adodc控件连接加密的数据库的方法也有两种:
一种方法是在设计状态时,在“属性窗口”中,对adodc控件的connectionstring属性设置一个有效的连接字符串,并在连接字符串后增加上”; jet oledb: database password=1234”,再设置adodc控件的commandtype、recordsource的属性就可以创建到加密的数据库的连接了。
另一种方法是在运行时,通过代码动态地设置connectionstring、commandtype和recordsource属性来创建连接。 只要在connectionstring属性的有效连接字符串后增加上”; jet oledb: database password=1234”即可。
2、使用数据对象
① dao数据对象
要能正确引用dao数据对象来建立与数据库的连接,应先在vb集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框选择“microsoft dao 3.51 object library”选项来添加dao数据对象类型库。
接下来就可用如下代码来建立到加密的access数据库ssgl.mdb的连接。
dim db as database
set db=opendatabase(app.path + “ssgl.mdb” , false , false , ” ; pwd=1234”)
② ado数据对象
ado是microsoft推出的处理关系数据库和非关系数据库中信息的最新技术,也是microsoft推崇的用于数据连接和访问的技术。在vb 6.0中,adodc控件、ado数据对象及dataenvironment(数据环境设计器)都采用的是ado技术,因而它们处理加密的access数据库的方法类似。
要能正确引用ado数据对象,应在vb 6.0集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框中选中“microsoft activex data objects 2.1 library”选项来添加ado数据对象类型库。
可用如下代码来建立到加密的access数据库ssgl.mdb的连接。
dim cnn as adodb.connection
dim rst as adodb.recordset
set cnn=new adodb.connection
cnn.provider= ”microsoft.jet.oledb.3.51”
cnn.connectionstring= ”data source=” & app.path & ”ssgl.mdb;” & _
” ;jet oledb:database password=1234”
cnn.open
③ 使用dataenvironment(数据环境设计器)
有两种方法可以通过dataenvironment连接到加密的access数据库:
一种方法是在设计状态时,在dataenvironment的connection对象的connectionsource属性的有效连接字符串后加上” ;
jet oledb: database password=1234”
另一种方法是在dataenvironment_initialize()事件中编写如下代码:
private sub dataenvironment_initialize( )
dim strconn as string
strconn=” provider=microsoft.jet.oledb.3.51;” & _
”data source=” & app.path & “ssgl.mdb;” & _
”; jet oledb: database password=1234”
dataenvironment1.connection1.connectionstring=strconn
end sub
以上方法及相关代码笔者都已在windows 98操作系统环境,visual basic 6.0中调试、验证并通过。