明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

VB6.0 中連接加密的Access數(shù)據(jù)庫

[摘要]以前曾看過介紹如何在Visual Basic中連接和使用Access數(shù)據(jù)庫的技術(shù)文章,實際上在專業(yè)的數(shù)據(jù)庫軟件開發(fā)中,為了確保數(shù)據(jù)庫中信息的安全,往往要求對數(shù)據(jù)庫文件進(jìn)行加密,以防止非法用戶通過其它的常規(guī)手段將其打開。那么,在Visual Basic中如何建立與加密的數(shù)據(jù)庫的連接呢?筆者在開發(fā)本校...
 
  以前曾看過介紹如何在Visual Basic中連接和使用Access數(shù)據(jù)庫的技術(shù)文章,實際上在專業(yè)的數(shù)據(jù)庫軟件開發(fā)中,為了確保數(shù)據(jù)庫中信息的安全,往往要求對數(shù)據(jù)庫文件進(jìn)行加密,以防止非法用戶通過其它的常規(guī)手段將其打開。那么,在Visual Basic中如何建立與加密的數(shù)據(jù)庫的連接呢?筆者在開發(fā)本校的宿舍管理信息系統(tǒng)中,總結(jié)了一些方法和技巧,現(xiàn)寫出來與同行交流。

  一、建立數(shù)據(jù)庫

  因為在Visual Basic 6.0中有的數(shù)據(jù)庫連接方式不支持Access 2000版本格式的數(shù)據(jù)庫,為了便于說明問題,本文所提的數(shù)據(jù)庫以Access 97版本數(shù)據(jù)庫為例。

  在Microsoft Access 97中建立一個數(shù)據(jù)庫,如:ssgl.mdb,并設(shè)置密碼,如:“1234”,再將數(shù)據(jù)庫文件和VB中創(chuàng)建的工程文件放在同一目錄下。

  如果用戶的計算機上只有Access 2000的話,可以先在Access 2000中建立ssgl.mdb數(shù)據(jù)庫,并設(shè)置密碼,再用Access 2000中的“數(shù)據(jù)庫實用工具”將數(shù)據(jù)庫轉(zhuǎn)換成Access 97版本的格式。

  當(dāng)然也可以直接在Visual Basic 6.0集成開發(fā)環(huán)境中通過“可視化數(shù)據(jù)管理器”來創(chuàng)建數(shù)據(jù)庫,再到Access 97中設(shè)置密碼。

  通過對數(shù)據(jù)庫文件設(shè)置密碼,一般情況下,非法用戶就不能用常規(guī)的手段打開數(shù)據(jù)庫了,對數(shù)據(jù)庫中的信息起到了一定的安全和保密作用。

  二、連接加密的Access數(shù)據(jù)庫

  在Visual Basic 6.0中,要建立與數(shù)據(jù)庫的連接,可采用的技術(shù)手段很多,如:數(shù)據(jù)控件、數(shù)據(jù)對象、數(shù)據(jù)環(huán)境設(shè)計器等。開發(fā)人員可以根據(jù)自身的條件和用戶的需求進(jìn)行選擇。

  限于篇幅,下面只介紹加密的Access數(shù)據(jù)庫與沒有加密的Access數(shù)據(jù)庫在連接時的不同之處。關(guān)于沒有加密的數(shù)據(jù)庫的連接及訪問的方法讀者可以參閱其它資料。

  1、使用控件

 、 Data控件

  Data控件是Visual Basic 6.0中的一個內(nèi)置數(shù)據(jù)控件,可以通過設(shè)置Data控件的connect、DatabaseName、RecordSource屬性實現(xiàn)對數(shù)據(jù)庫的連接和訪問。 通過Data控件連接加密的數(shù)據(jù)庫的方法有兩種:

  一種方法是在設(shè)計狀態(tài)時,在“屬性窗口”中將Data控件的connect屬性的缺省值”Access”改為”; pwd=1234”即可,其它屬性的設(shè)置方法與沒有加密的Access數(shù)據(jù)庫的連接相同。

  另一種方法是在運行時,通過代碼對connect屬性賦值來實現(xiàn)。如:

Data1.connect=”; pwd=1234”

Data1.DatabaseName=APP.path + “\ssgl.mdb”

  其中,”1234”為Access數(shù)據(jù)庫文件ssgl.mdb的密碼,下同。

  ②Adodc控件

  Adodc控件是一個ActiveX控件,它使用Microsoft ActiveX Data Objects(ADO)創(chuàng)建到數(shù)據(jù)庫的連接。使用Adodc控件之前,要先將Adodc控件添加到控件工具箱中。方法如下:在VB 6.0種選擇“工程”菜單,再點擊“部件”菜單項,在彈出的“部件”對話框中選中“Microsoft ADO Data Control 6.0(OLEDB)”選項即可。

  通過Adodc控件連接加密的數(shù)據(jù)庫的方法也有兩種:

  一種方法是在設(shè)計狀態(tài)時,在“屬性窗口”中,對Adodc控件的ConnectionString屬性設(shè)置一個有效的連接字符串,并在連接字符串后增加上”; Jet OLEDB: DataBase password=1234”,再設(shè)置Adodc控件的CommandType、RecordSource的屬性就可以創(chuàng)建到加密的數(shù)據(jù)庫的連接了。

  另一種方法是在運行時,通過代碼動態(tài)地設(shè)置ConnectionString、CommandType和RecordSource屬性來創(chuàng)建連接。 只要在ConnectionString屬性的有效連接字符串后增加上”; Jet OLEDB: DataBase password=1234”即可。

  2、使用數(shù)據(jù)對象

 、 DAO數(shù)據(jù)對象

  要能正確引用DAO數(shù)據(jù)對象來建立與數(shù)據(jù)庫的連接,應(yīng)先在VB集成開發(fā)環(huán)境中選擇“工程”菜單,再點擊“引用”菜單項,在彈出的“引用”對話框選擇“Microsoft DAO 3.51 Object Library”選項來添加DAO數(shù)據(jù)對象類型庫。

  接下來就可用如下代碼來建立到加密的Access數(shù)據(jù)庫ssgl.mdb的連接。

Dim db AS DataBase

Set db=OpenDataBase(App.path + “\ssgl.mdb” , False , False , ” ; pwd=1234”)

 、 ADO數(shù)據(jù)對象

  ADO是Microsoft推出的處理關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫中信息的最新技術(shù),也是Microsoft推崇的用于數(shù)據(jù)連接和訪問的技術(shù)。在VB 6.0中,Adodc控件、ADO數(shù)據(jù)對象及DataEnvironment(數(shù)據(jù)環(huán)境設(shè)計器)都采用的是ADO技術(shù),因而它們處理加密的Access數(shù)據(jù)庫的方法類似。

  要能正確引用ADO數(shù)據(jù)對象,應(yīng)在VB 6.0集成開發(fā)環(huán)境中選擇“工程”菜單,再點擊“引用”菜單項,在彈出的“引用”對話框中選中“Microsoft ActiveX Data Objects 2.1 Library”選項來添加ADO數(shù)據(jù)對象類型庫。

  可用如下代碼來建立到加密的Access數(shù)據(jù)庫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(數(shù)據(jù)環(huán)境設(shè)計器)

  有兩種方法可以通過DataEnvironment連接到加密的Access數(shù)據(jù)庫:

  一種方法是在設(shè)計狀態(tài)時,在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

  以上方法及相關(guān)代碼筆者都已在Windows 98操作系統(tǒng)環(huán)境,Visual Basic 6.0中調(diào)試、驗證并通過。