24h購物| | PChome| 登入
2007-07-07 12:54:19 | 人氣1,622| 回應0 | 上一篇 | 下一篇
推薦 0 收藏 0 轉貼0 訂閱站台

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

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中調試、驗證並透過。

台長: Kenny
人氣(1,622) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 教育學習(進修、留學、學術研究、教育概況) | 個人分類: 程式設計 |
此分類下一篇:用Visual Basic學做“駭客”程式
此分類上一篇:Windows CE 的 撥號網路

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文