萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> delphi連接數據庫

delphi連接數據庫

  一個程序連接數據庫中間就需要有一個數據庫連接引擎

  筆者在使用Delphi的過程中,共使用過幾種連接方式連接Access,SqlServer,Oracle,IBM UDB,IBM AS/400...

  1.BDE

  這是使用Delphi最多的一種方式,建立一個BDE別名可以在控制面板中的BDE Administration中添加,不過我習慣在SQL Explorer中建立,因為建立之後直接可以執行建表的腳本了。

  你可以在SQL Explorer中左邊的別名列表中點擊右鍵,並選擇要連接的數據庫種類,並在之後BDE建立的連接參數中填入必要的信息,注意,當你選擇不同的數據庫時,右邊的參數有少許的不同,這些參數的不同是由於不同數據庫所要求的參數不同造成的,例如SqlServer需要輸入服務器的名稱,數據庫的名稱。

  BDE能夠連接我所使用過的所有的數據庫,當然有些是通過ODBC來連接的。

  在發布程序時,必須發布BDE引擎。用InstallShield Express可以很方便的做這件事情

  BDE的別名也可以在Delphi程序中動態的檢查有無並建立之。我通常用TSession組件來Do It。

  2.ODBC

  這是Ms的產品。

  如果你在ODBC中建立了一個DSN連接,那麼你的Delphi程序還是需要使用BDE來連接它,但是此時不需要用上一步中的手動建立別名,BDE會將ODBC中的所有別名自動在BDE中建立相同名稱的別名,並且它是刪不掉的,除非你刪掉ODBC的DSN。

  這種方式的實際是程序通過BDE,再通過ODBC,才連接到數據庫。

  在早期使用Aceess時,我通常使用這種方式。因為那時候還沒有ADO。

  同樣在使用IBM UDB時,我也用這種方式,因為在使用BDE直接連接時,在SQL Explorer中將不能枚舉數據庫中的表,而ODBC可以。

  AS/400也可以使用這種方式來連接...

  大型關系型數據庫都提供ODBC驅動。在建立ODBC源時,都會調用其本身的配置,不同的數據庫也是不同的。

  ODBC源也可以在程序用代碼寫入注冊表中,來生成一個DSN.

  3.ADO

  這是ODBC的升級版本,通常也叫做mdac ,我用過的最新版本是2.7,現在應該更高。在使用ms的數據庫SqlServer,Access時,推薦使用這個東西,因為他從win98開始就集成在操作系統中,並且以連接字符串的形式提供所有參數,發布系統時不需要在程序之外做其他的工作。

  它也提供包括一些類數據庫的連接,例如Excel。

  值得一提的是在連接有密碼的Access時,Delphi的Ado向導生成的連接字符傳是有Bug的,其生成的password子項是password='xxx';這個樣子,但是這將不能連接,手動將其改成Jet Oledb password='xxx';(好像是這樣,記不清了).

  4.DbExpress

  這是Borland提供的最新的數據庫引擎,目前提供的驅動有限,我只用它成功測試過IBM UDB,在網上可以找到第3方的連接AS/400的驅動。

  它是一個提供單向游標的引擎,Borland稱相對於BDE,具有更高的效率。並且在以後將發展它,而停止BDE的更新。

  通常在使用這種方式時,應該用DataSnap(以前叫Midas)技術來提供雙向游標的應用,並且用TClientDataset的Data,Delta屬性來靈活的序列化Dataset,而實現多層松耦合系統。

  5.第3方的驅動

  這些我一個都沒在實際 中使用過,通常以組件的形式提供,我所知的如連接Oracle的Odac,連接As/400的Delphi400。。。

  最後現在如果可能,應盡量使用ADO來連接系統,並且用DataSnap來操作本地數據集來實現多層系統。

copyright © 萬盛學電腦網 all rights reserved