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,在其向导
程序中指定源数