程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 在Delphi中使用DBF數據

在Delphi中使用DBF數據

編輯:Delphi

Delphi是美國Inprise 公司開發的功能強大的Windows 應用程序開發工具。她是可視化應用程序開發環境、可重用性面向對象編程語言、快速編譯器和數據庫技術的完美結合。

由於Delphi具有運行速度快、功能強大、易於學習和使用且開發迅速等特點,並支持XML和HTML,支持 Web 和Internet的開發,一直受到廣大用戶的喜愛。

國內PC機上使用最普及歷史最長的數據庫是DBF格式的數據庫,即是dBASE II、dBASE III和FoxPro中使用的數據庫格式。為了充分利用已有的數據庫資源,並能在Delphi環境下開發功能更強的應用軟件,本文將討論如何在Delphi中使用DBF數據庫(數據表)以及其轉換的方法。

一、直接使用DBF格式的數據庫

若將DBF格式的數據庫或表作為應用程序開發中的數據資源,應在Delphi中的"BDE Administrator"數據庫引擎中用DBASE或FOXPRO作為配置參數,這樣就可以在Delphi中修改和直接訪問DBF數據,參見BDE配置工具圖(略)。

二、轉換成Delphi環境中的Paradox數據表

Delphi開發工具允許用戶創建和訪問Paradox 和Local InterBase等服務器的數據庫應用,這裡我們討論將DBF轉換成Paradox 數據庫的方法。

1、使用數據庫桌面Database Desktop --Delphi提供的輔助工具之一

用Database Desktop(參見圖2)的復制功能來實現轉換,其操作過程如下: 1)選用菜單"Tools/Utilities/Copy…",將出現"Copy"對話框,讓用戶指定將要轉換的DBF源文件,這裡我們選擇了student.dbf文件,並按下"OK"鍵。

2)這時,出現"Copy to" 對話框,選擇目標文件名或在文件名編輯框裡輸入一個新目標文件名,並給出Paradox數據文件的擴展名.db。

3)然後選擇"Copy"按鈕。

此時,Database Desktop將DBF數據student.dbf轉換成了Paradox 的student.db數據。轉換過程中,其數據結構的字段類型變化參照表1。

表1:

在DBF的字段類型 轉換成Paradox字段類型

C Alpha
F(浮點型) Number
N Number
L Logical
D Date
Memo Memo
OLE OLE
Binary Graphic
-----------------------------------------

Paradox 確保從DBF備注字段轉換來的數值是文本格式,否則如含有其他類型的數據,就應該使用Add功能添加該備注字段到相應的Paradox BLOB類型字段中。

同樣,也可以將Paradox數據庫表轉換成DBF格式,其字段類型將按參照表2自動地轉化。如果生成的DBF不含有索引文件、浮點類型字段和備注字段,則Database Desktop 將產生一個dBASE III數據庫表;如果生成的DBF表含有OLE或二進制字段類型,則Database Desktop 將產生Windows的DBF數據庫表;否則將生成一個dBASE IV數據庫表。

表2:

-------------------------------------------------

在Paradox中的字段類型 轉換成DBF字段類型 備注

------------------------------------------------

Alpha C
Number N(20.4)
Money N(20.4)
Short N(6.0)
Long Integer N(11.0)
BCD N(20.4)
Date D
Time C(8)
Timestamp C(30)
Memo Memo
Formatted Memo Memo 格式丟失
Graphic Binary
OLE OLE
Logical Logical
Autoincrement Number
Binary Memo 不能顯示數據
Bytes Memo 不能顯示數據

2、使用數據管道Datapump --Delphi提供的輔助工具之一

用數據管道的移動功能可以實現DBF數據庫表轉換成Paradox的數據,其操作過程如下:

1)使用Borland數據庫引擎BDE,為源數據庫和目標數據庫各建立一個別名;

2)啟動數據管道Data Pump,在其向導程序中指定源數據庫的別名或路徑;

3)指定目標數據庫的別名;

4)從源數據庫中選擇要移動的數據表(可以選擇一個或多個),這裡我們選擇student.dbf;

5)通過按鈕"Modify Mapping Information for Selected Item",修改數據表的結構信息,以適應目標數據表的需求。當選擇此按鈕,進入"Modify Fields"對話框,從而可以逐一選擇DBF數據表的字段名,並修改成所需的Paradox 數據類型,以及目標數據庫中不支持的字段類型、索引和數據的完整性等。

6)單擊"Upsize"按鈕,使DBF數據表移動到Paradox 。

7)浏覽數據移動結果,若有不滿意之處,可以在目標數據表中直接修改;或者觀察"Report"對話框顯示的移動過程的詳細記載,若滿足需求,擊"Write a copy of this report to file"按鈕,輸入文件名student.db而保存轉換的結果。

除了DBF和Paradox 數據之外,Data Pump也可以應用到其他的PC數據庫或SQL Server數據庫之間的轉換。

3、使用Delphi數據訪問部件(Data Access)中的BatchMove控件 BatchMove控件具有對成批的記錄、整個數據庫表進行移動、拷貝和刪除操作,但是它不能復制源數據文件的索引和糾錯規則等。將DBF 數據庫轉換成Paradox的數據表操作過程如下:

1)在Database Desktop 中建立Paradox 數據表student.db 的表結構,使其字段順序等與DBF格式的student.dbf相對應。

2)在Delphi數據訪問部件Data Access中選擇兩個控件Table,並分別將Table1和Table2連接到源數據文件student.dbf 和目標文件student.db。

3)在Delphi數據訪問部件Data Access中選擇控件BatchMove放在一個Form上。

4)將BatchMove的Mode屬性設置為batCopy(功能:復制源文件數據到目標文件中)。

5)設置Source 屬性為Table1,Destination屬性為 Table2。

6)用鼠標右擊控件BatchMove,選擇彈出式菜單中的"Execute"項,此時,執行復制功能,即將DBF數據庫轉換成Paradox 數據表。

以上僅向同仁交流我在Delphi編程中的一點體會,且希望在編程過程中互通經驗,共振我國軟件之興。

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