2007-07-07 12:54:19
Kenny
VB6.0 中連接加密的Access資料庫
以前曾看過介紹如何在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屬性賦值來實現。如:
其中,”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的連接。
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的連接。
使用DataEnvironment(數據環境設計器)
有兩種方法可以透過DataEnvironment連接到加密的Access資料庫:
一種方法是在設計狀態時,在DataEnvironment的connection對象的ConnectionSource屬性的有效連接字元串後加上” ;
另一種方法是在DataEnvironment_Initialize()事件中編寫如下代碼:
以上方法及相關代碼筆者都已在Windows 98作業系統環境,Visual Basic 6.0中調試、驗證並透過。
一、建立資料庫
因為在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中調試、驗證並透過。