溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在Delphi中訪問DBF數(shù)據(jù)庫

發(fā)布時間:2020-04-07 04:06:22 來源:網(wǎng)絡(luò) 閱讀:433 作者:wx5d39183e901c5 欄目:關(guān)系型數(shù)據(jù)庫

xBase是所有源自原始dBase數(shù)據(jù)庫格式(.dbf)的數(shù)據(jù)庫的通用術(shù)語。該列表包括Visual FoxPro、Clipper、dBase III、dBase IV等。這些數(shù)據(jù)庫被非正式地稱為dBase克隆,因為它們是dBase的直接后代或模仿者。

xBase數(shù)據(jù)庫將大量格式化數(shù)據(jù)以結(jié)構(gòu)化形式存儲在.dbf數(shù)據(jù)文件中。在類似dBase的數(shù)據(jù)庫中,.dbf文件存儲一個表,其中保留了表描述,字段描述符和記錄。類似dBase的現(xiàn)代數(shù)據(jù)庫還具有用于大型文本字段(備忘錄)、命令、過程、備份等的文件。

有各種各樣的數(shù)據(jù)庫引擎可以讀取和操作DBF文件中的數(shù)據(jù),但是它們都不了解xBase數(shù)據(jù)庫的所有格式——這些數(shù)據(jù)庫引擎中的大多數(shù)都可以與xBase系列的一種或兩種方言進行交互。與其他現(xiàn)有解決方案不同,UniDAC中的Delphi數(shù)據(jù)訪問提供程序TDBFUniProvider提供了一種引擎,該引擎可以理解許多類似dBase的數(shù)據(jù)庫中的DBF文件。

UniDAC是一款通用數(shù)據(jù)庫訪問組件,提供了多個數(shù)據(jù)庫的直接訪問,如針對Windows的Delphi, C++Builder, Lazarus (以及 Free Pascal) , Mac OS X, iOS, Android, Linux和64和32位的FreeBSD等等。

TDBFUniProvider提供對xBase數(shù)據(jù)庫的直接訪問,并支持所有dBase本機數(shù)據(jù)類型(字符、數(shù)字、邏輯、數(shù)據(jù)、備忘錄)。它用作SQL引擎,對數(shù)據(jù)庫文件執(zhí)行命令。項目中的Delphi代碼被編譯成可執(zhí)行文件,不需要任何其他外部文件即可訪問和操作DBF文件中的數(shù)據(jù)。

用于訪問xBase數(shù)據(jù)庫文件的UniDAC Delphi組件支持多種數(shù)據(jù)庫文件格式:dBase III、dBase IV、dBase V、dBase VII、FoxPro2、Visual FoxPro、Clipper、CodeBase、HiPer-Six。除了允許開發(fā)人員使用標準的SQL-92語法外,它還提供了一種快速的方法來重建表并刪除已刪除的記錄,以減小數(shù)據(jù)庫文件的大小。

創(chuàng)建示例Delphi應(yīng)用程序以訪問xBase數(shù)據(jù)庫

我們將創(chuàng)建一個簡單的Delphi應(yīng)用程序,該應(yīng)用程序?qū)⒁訴isual FoxPro格式連接到數(shù)據(jù)庫,并在單擊“顯示”按鈕時顯示表中的記錄。

1、在“工具選項板”中找到TUniConnection、TUniQuery、TUniDataSource、TDBFUniProvider、TDBGrid和TButton組件,并將它們放在表單上。

如何在Delphi中訪問DBF數(shù)據(jù)庫

2、雙擊表單上的UniConnection1組件。切換到“選項”選項卡,然后將“直接”設(shè)置為True。

如何在Delphi中訪問DBF數(shù)據(jù)庫

3、返回到“連接”選項卡,選擇“DBF”作為提供程序,然后輸入計算機上Visual FoxPro(或任何其他xBase數(shù)據(jù)庫)的路徑。單擊連接。如果一切順利,紅色圓圈將變?yōu)榫G色。

如何在Delphi中訪問DBF數(shù)據(jù)庫

4、在UniDataSource1中,將DataSet屬性設(shè)置為UniQuery1。

如何在Delphi中訪問DBF數(shù)據(jù)庫

5、選擇DBGrid1并將DataSource屬性設(shè)置為UniDataSource1。

如何在Delphi中訪問DBF數(shù)據(jù)庫

6、選擇UniQuery1組件并將Connection屬性設(shè)置為UniConnection1,然后雙擊該組件并輸入SQL語句。單擊確定。

如何在Delphi中訪問DBF數(shù)據(jù)庫

7、將按鈕的“標題”屬性更改為“在對象檢查器中顯示”。雙擊按鈕,切換到“代碼”選項卡并添加UniQuery1.Open; 到OnClick事件處理程序代碼。

如何在Delphi中訪問DBF數(shù)據(jù)庫

8、按F9編譯并運行您的應(yīng)用程序。如果程序編譯沒有錯誤,則應(yīng)該看到已編譯的表單應(yīng)用程序。單擊顯示以獲取并查看Visual FoxPro表中的數(shù)據(jù)。

如何在Delphi中訪問DBF數(shù)據(jù)庫

檢索損壞的數(shù)據(jù)和元數(shù)據(jù)

xBase方言歷史悠久,.dbf文件中的字段包含不受支持的類型的數(shù)據(jù)的情況并不罕見。要解決任何不受支持的數(shù)據(jù)類型的問題,UniDAC提供了兩個選項:IgnoreDataErrorsIgnoreMetaDataErrors。前一個選項在打開DBF表時強制UniDAC忽略損壞的數(shù)據(jù)錯誤,而后一個選項使UniDAC忽略元數(shù)據(jù)錯誤:當兩個選項都設(shè)置為True時,將跳過損壞的數(shù)據(jù),并正確地檢索其他數(shù)據(jù)。

另一個功能是當您不完全了解DBF文件的格式時(DBFFormat選項中的dfAuto值),可以自動確定xBase數(shù)據(jù)庫的方言。

支持的目標平臺

UniDAC支持多個目標平臺:您可以創(chuàng)建一個訪問DBF數(shù)據(jù)庫的應(yīng)用程序,用于:

  • Windows,32位和64位

  • macOS,32位和64位

  • iOS,32位和64位

  • Android,32位和64位

  • Linux,32位和64位


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI