程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 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來操作本地數據集來實現多層系統。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved