程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> VB6.0 中連接加密的Access數據庫

VB6.0 中連接加密的Access數據庫

編輯:關於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屬性賦值來實現。如:

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中調試、驗證並通過。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved