<p class="intro">以前曾看过介绍如何在Visual Basic中 连接 和使用Access 数据库 的技术文章,实际上在专业的 数据库 软件开发中,为了确保 数据库 中信息的安全,往往要求对 数据库 文件进行加密,以防止非法用户通过其它的常规手段将其打开。那么,在Visual Basic中如何建</p> <dd id="Article"> 以前曾看过介绍如何在Visual Basic中<strong>连接</strong>和使用Access<strong>数据库</strong>的技术文章,实际上在专业的<strong>数据库</strong>软件开发中,为了确保<strong>数据库</strong>中信息的安全,往往要求对<strong>数据库</strong>文件进行加密,以防止非法用户通过其它的常规手段将其打开。那么,在Visual Basic中如何建立与加密的<strong>数据库</strong>的<strong>连接</strong>呢?笔者在开发本校的宿舍管理信息系统中,总结了一些方法和技巧,现写出来与同行交流。 <br><br> 一、建立<strong>数据库</strong><br><br> 因为在Visual Basic 6.0中有的<strong>数据库</strong><strong>连接</strong>方式不支持Access 2000版本格式的<strong>数据库</strong>,为了便于说明问题,本文所提的<strong>数据库</strong>以Access 97版本<strong>数据库</strong>为例。<br><br> 在Microsoft Access 97中建立一个<strong>数据库</strong>,如:ssgl.mdb,并设置密码,如:“1234”,再将<strong>数据库</strong>文件和VB中创建的工程文件放在同一目录下。<br><br> 如果用户的计算机上只有Access 2000的话,可以先在Access 2000中建立ssgl.mdb<strong>数据库</strong>,并设置密码,再用Access 2000中的“<strong>数据库</strong>实用工具”将<strong>数据库</strong>转换成Access 97版本的格式。<br><br> 当然也可以直接在Visual Basic 6.0集成开发环境中通过“可视化数据管理器”来创建<strong>数据库</strong>,再到Access 97中设置密码。<br><br> 通过对<strong>数据库</strong>文件设置密码,一般情况下,非法用户就不能用常规的手段打开<strong>数据库</strong>了,对<strong>数据库</strong>中的信息起到了一定的安全和保密作用。 <br><br> 二、<strong>连接</strong>加密的Access<strong>数据库</strong><br><br> 在Visual Basic 6.0中,要建立与<strong>数据库</strong>的<strong>连接</strong>,可采用的技术手段很多,如:数据控件、数据对象、数据环境设计器等。开发人员可以根据自身的条件和用户的需求进行选择。<br><br> 限于篇幅,下面只介绍加密的Access<strong>数据库</strong>与没有加密的Access<strong>数据库</strong>在<strong>连接</strong>时的不同之处。关于没有加密的<strong>数据库</strong>的<strong>连接</strong>及访问的方法读者可以参阅其它资料。<br><br> 1、使用控件<br><br> ① Data控件<br><br> Data控件是Visual Basic 6.0中的一个内置数据控件,可以通过设置Data控件的connect、DatabaseName、RecordSource属性实现对<strong>数据库</strong>的<strong>连接</strong>和访问。 通过Data控件<strong>连接</strong>加密的<strong>数据库</strong>的方法有两种:<br><br> 一种方法是在设计状态时,在“属性窗口”中将Data控件的connect属性的缺省值”Access”改为”; pwd=1234”即可,其它属性的设置方法与没有加密的Access<strong>数据库</strong>的<strong>连接</strong>相同。<br><br> 另一种方法是在运行时,通过代码对connect属性赋值来实现。如:<br><br>Data1.connect=”; pwd=1234”<br><br>Data1.DatabaseName=APP.path + “ssgl.mdb” <br><br> 其中,”1234”为Access<strong>数据库</strong>文件ssgl.mdb的密码,下同。<br><br> ②Adodc控件<br><br> Adodc控件是一个ActiveX控件,它使用Microsoft ActiveX Data Objects(ADO)创建到<strong>数据库</strong>的<strong>连接</strong>。使用Adodc控件之前,要先将Adodc控件添加到控件工具箱中。方法如下:在VB 6.0种选择“工程”菜单,再点击“部件”菜单项,在弹出的“部件”对话框中选中“Microsoft ADO Data Control 6.0(OLEDB)”选项即可。<br><br> 通过Adodc控件<strong>连接</strong>加密的<strong>数据库</strong>的方法也有两种:<br><br> 一种方法是在设计状态时,在“属性窗口”中,对Adodc控件的ConnectionString属性设置一个有效的<strong>连接</strong>字符串,并在<strong>连接</strong>字符串后增加上”; Jet OLEDB: DataBase password=1234”,再设置Adodc控件的CommandType、RecordSource的属性就可以创建到加密的<strong>数据库</strong>的<strong>连接</strong>了。<br><br> 另一种方法是在运行时,通过代码动态地设置ConnectionString、CommandType和RecordSource属性来创建<strong>连接</strong>。 只要在ConnectionString属性的有效<strong>连接</strong>字符串后增加上”; Jet OLEDB: DataBase password=1234”即可。<br><br> 2、使用数据对象<br><br> ① DAO数据对象<br><br> 要能正确引用DAO数据对象来建立与<strong>数据库</strong>的<strong>连接</strong>,应先在VB集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框选择“Microsoft DAO 3.51 Object Library”选项来添加DAO数据对象类型库。<br><br> 接下来就可用如下代码来建立到加密的Access<strong>数据库</strong>ssgl.mdb的<strong>连接</strong>。<br><br>Dim db AS DataBase<br><br>Set db=OpenDataBase(App.path + “ssgl.mdb” , False , False , ” ; pwd=1234”) <br><br> ② ADO数据对象<br><br> ADO是Microsoft推出的处理关系<strong>数据库</strong>和非关系<strong>数据库</strong>中信息的最新技术,也是Microsoft推崇的用于数据<strong>连接</strong>和访问的技术。在VB 6.0中,Adodc控件、ADO数据对象及DataEnvironment(数据环境设计器)都采用的是ADO技术,因而它们处理加密的Access<strong>数据库</strong>的方法类似。<br><br> 要能正确引用ADO数据对象,应在VB 6.0集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框中选中“Microsoft ActiveX Data Objects 2.1 Library”选项来添加ADO数据对象类型库。<br><br> 可用如下代码来建立到加密的Access<strong>数据库</strong>ssgl.mdb的<strong>连接</strong>。<br><br>Dim cnn AS ADODB.Connection<br><br>Dim rst AS ADODB.Recordset<br><br>Set cnn=New ADODB.Connection<br><br>Cnn.Provider= ”Microsoft.Jet.OLEDB.3.51”<br><br>Cnn.ConnectionString= ”Data Source=” & App.path & ”ssgl.mdb;” & _<br><br>” ;Jet OLEDB:Database password=1234”<br><br>cnn.Open <br><br> ③ 使用DataEnvironment(数据环境设计器)<br><br> 有两种方法可以通过DataEnvironment<strong>连接</strong>到加密的Access<strong>数据库</strong>:<br><br> 一种方法是在设计状态时,在DataEnvironment的connection对象的ConnectionSource属性的有效<strong>连接</strong>字符串后加上” ;<br><br>Jet OLEDB: Database password=1234” <br><br> 另一种方法是在DataEnvironment_Initialize()事件中编写如下代码:<br><br>Private sub DataEnvironment_Initialize( )<br><br>Dim strconn AS string<br><br>Strconn=” Provider=Microsoft.Jet.OLEDB.3.51;” & _<br><br>”Data Source=” & App.path & “ssgl.mdb;” & _<br><br>”; Jet OLEDB: Database password=1234”<br><br>DataEnvironment1.connection1.connectionstring=strconn<br><br>End sub <br><br> 以上方法及相关代码笔者都已在Windows 98操作系统环境,Visual Basic 6.0中调试、验证并通过。 </dd>