论文部分内容阅读
【摘要】在程序设计中,为了保护数据的安全,数据加密是经常使用的技术。本文就在VB中对加密的Access数据库操作技术进行了较全面和系统的阐述。并以实例作了较为详细的介绍。
【关键词】Access数据库;数据加密;数据控件;数据对象
以前曾看过介绍如何在Visual Basic中连接和使用Access数据库的技术文章,实际上在专业的数据库软件开发中,为了确保数据库中信息的安全,往往要求对数据库文件进行加密,以防止非法用户通过其它的常规手段将其打开。
那么,在Visual Basic中如何建立与加密的数据库的连接呢?笔者在开发本校的学校录取管理信息系统中,总结了一些方法和技巧,现写出来与同行交流。
一、建立数据库
本文所提的数据库以Access 2000版本数据库为例。
在Microsoft Access 2000中建立一个数据库,如:xsxx.mdb,并设置密码,如:"420205",再将数据库文件和VB中创建的工程文件放在同一目录下。
通过对数据库文件设置密码,一般情况下,非法用户就不能用常规的手段打开数据库了,对数据库中的信息起到了一定的安全和保密作用。
二、连接加密的Access数据库
在Visual Basic 6.0中,要建立与数据库的连接,可采用的技术手段很多,如:数据控件、数据对象、数据环境设计器等。开发人员可以根据自身的条件和用户的需求进行选择。
限于篇幅,下面只介绍加密的Access数据库与没有加密的Access数据库在连接时的不同之处。关于没有加密的数据库的连接及访问的方法读者可以参阅其它资料。
1、使用控件
(1)Data控件
Data控件是Visual Basic 6.0中的一个内置数据控件,可以通过设置Data控件的connect、DatabaseName、RecordSource属性实现对数据库的连接和访问。 通过Data控件连接加密的数据库的方法有两种:
一种方法是在设计状态时,在"属性窗口"中将Data控件的connect属性的缺省值"Access"改为"; pwd=420205"即可,其它属性的设置方法与没有加密的Access数据库的连接相同。
另一种方法是在运行时,通过代码对connect属性赋值来实现。如:
Data1.connect="; pwd=420205"
Data1.DatabaseName=APP.path + "\xsxx.mdb"
其中,"420205"为Access数据库文件xsxx.mdb的密码,下同。
(2)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=420205",再设置Adodc控件的CommandType、RecordSource的属性就可以创建到加密的数据库的连接了。
另一种方法是在运行时,通过代码动态地设置ConnectionString、CommandType和RecordSource属性来创建连接。 只要在ConnectionString属性的有效连接字符串后增加上"; Jet OLEDB: DataBase password=420205"即可。
2、使用数据对象
(1)DAO数据对象
要能正确引用DAO数据对象来建立与数据库的连接,应先在VB集成开发环境中选择"工程"菜单,再点击"引用"菜单项,在弹出的"引用"对话框选择"Microsoft DAO 3.51 Object Library"选项来添加DAO数据对象类型库。
接下来就可用如下代码来建立到加密的Access数据库xsxx.mdb的连接。
Dim db AS DataBase
Set db=OpenDataBase(App.path + "\xsxx.mdb" , False , False , " ; pwd=420205")
(2)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数据库xsxx.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 & "\xsxx.mdb;" & _" ;Jet OLEDB:Database password=420205"cnn.Open
(3)使用DataEnvironment(数据环境设计器)
有两种方法可以通过DataEnvironment连接到加密的Access数据库:
一种方法是在设计状态时,在DataEnvironment的connection对象的ConnectionSource属性的有效连接字符串后加上" ; Jet OLEDB: Database password=420205"
另一种方法是在DataEnvironment_Initialize()事件中编写如下代码:
Private sub DataEnvironment_Initialize( )
Dim strconn AS string
Strconn=" Provider=Microsoft.Jet.OLEDB.3.51;" & _"Data Source=" & App.path & "\xsxx.mdb;" & _"; Jet OLEDB: Database password=420205"
DataEnvironment1..connection1.connectionstring=strconnEnd sub
以上方法及相关代码笔者都已在Windows 2000和Windows XP操作系统环境,Visual Basic 6.0中调试、验证并通过。
【参考文献】
[1].王金峰. Visual Basic 程序设计与实训教程.北京:科学出版社.2006
[2].李天真.Visual Basic 程序设计.北京:科学出版社.2003
作者简介:王金峰,(1961-),男,湖北蕲春人,高级讲师,研究方向:软件工程,网络技术
【关键词】Access数据库;数据加密;数据控件;数据对象
以前曾看过介绍如何在Visual Basic中连接和使用Access数据库的技术文章,实际上在专业的数据库软件开发中,为了确保数据库中信息的安全,往往要求对数据库文件进行加密,以防止非法用户通过其它的常规手段将其打开。
那么,在Visual Basic中如何建立与加密的数据库的连接呢?笔者在开发本校的学校录取管理信息系统中,总结了一些方法和技巧,现写出来与同行交流。
一、建立数据库
本文所提的数据库以Access 2000版本数据库为例。
在Microsoft Access 2000中建立一个数据库,如:xsxx.mdb,并设置密码,如:"420205",再将数据库文件和VB中创建的工程文件放在同一目录下。
通过对数据库文件设置密码,一般情况下,非法用户就不能用常规的手段打开数据库了,对数据库中的信息起到了一定的安全和保密作用。
二、连接加密的Access数据库
在Visual Basic 6.0中,要建立与数据库的连接,可采用的技术手段很多,如:数据控件、数据对象、数据环境设计器等。开发人员可以根据自身的条件和用户的需求进行选择。
限于篇幅,下面只介绍加密的Access数据库与没有加密的Access数据库在连接时的不同之处。关于没有加密的数据库的连接及访问的方法读者可以参阅其它资料。
1、使用控件
(1)Data控件
Data控件是Visual Basic 6.0中的一个内置数据控件,可以通过设置Data控件的connect、DatabaseName、RecordSource属性实现对数据库的连接和访问。 通过Data控件连接加密的数据库的方法有两种:
一种方法是在设计状态时,在"属性窗口"中将Data控件的connect属性的缺省值"Access"改为"; pwd=420205"即可,其它属性的设置方法与没有加密的Access数据库的连接相同。
另一种方法是在运行时,通过代码对connect属性赋值来实现。如:
Data1.connect="; pwd=420205"
Data1.DatabaseName=APP.path + "\xsxx.mdb"
其中,"420205"为Access数据库文件xsxx.mdb的密码,下同。
(2)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=420205",再设置Adodc控件的CommandType、RecordSource的属性就可以创建到加密的数据库的连接了。
另一种方法是在运行时,通过代码动态地设置ConnectionString、CommandType和RecordSource属性来创建连接。 只要在ConnectionString属性的有效连接字符串后增加上"; Jet OLEDB: DataBase password=420205"即可。
2、使用数据对象
(1)DAO数据对象
要能正确引用DAO数据对象来建立与数据库的连接,应先在VB集成开发环境中选择"工程"菜单,再点击"引用"菜单项,在弹出的"引用"对话框选择"Microsoft DAO 3.51 Object Library"选项来添加DAO数据对象类型库。
接下来就可用如下代码来建立到加密的Access数据库xsxx.mdb的连接。
Dim db AS DataBase
Set db=OpenDataBase(App.path + "\xsxx.mdb" , False , False , " ; pwd=420205")
(2)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数据库xsxx.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 & "\xsxx.mdb;" & _" ;Jet OLEDB:Database password=420205"cnn.Open
(3)使用DataEnvironment(数据环境设计器)
有两种方法可以通过DataEnvironment连接到加密的Access数据库:
一种方法是在设计状态时,在DataEnvironment的connection对象的ConnectionSource属性的有效连接字符串后加上" ; Jet OLEDB: Database password=420205"
另一种方法是在DataEnvironment_Initialize()事件中编写如下代码:
Private sub DataEnvironment_Initialize( )
Dim strconn AS string
Strconn=" Provider=Microsoft.Jet.OLEDB.3.51;" & _"Data Source=" & App.path & "\xsxx.mdb;" & _"; Jet OLEDB: Database password=420205"
DataEnvironment1..connection1.connectionstring=strconnEnd sub
以上方法及相关代码笔者都已在Windows 2000和Windows XP操作系统环境,Visual Basic 6.0中调试、验证并通过。
【参考文献】
[1].王金峰. Visual Basic 程序设计与实训教程.北京:科学出版社.2006
[2].李天真.Visual Basic 程序设计.北京:科学出版社.2003
作者简介:王金峰,(1961-),男,湖北蕲春人,高级讲师,研究方向:软件工程,网络技术