发信人: redfox (Z掉了几乎所有的版...), 信区: BorlandDev
标 题: Delphi编程 -- 10.7 数据库之间转换
发信站: 哈工大紫丁香 (2000年09月01日16:53:20 星期五), 站内信件
用Delphi进行数据库之间转换
在实际应用中,可能会遇到将一种数据库转为另一种数据库的情况,而
Delphi可以完成这 种功能。尤其是需要将以前的dbase数据库结构及内容转换成其
它数据库结构时,采用此方法 简单、快速且安全。
Delphi是一种Windows应用程序开发软件。它速度快,具有强大且容易使用的可视化
开发 环境,并采用了具有弹性和可重用的完整的面向对象程序语言。
由于以上的这些特点,Delphi可以让我们快速地建立起主从结构的应用程序,可产生
单一 可执行文件与动态链接库以及从单机、网络到主从结构的应用程序。
使用Delhpi可以方便而快速地建立强大的数据库应用程序,可以和Paradox、dbase
、Lo cal InterBase Server、Foxpro及ODBC数据源等多种桌面型数据库直接配合
使用。
数据库转换方法
1.所使用的控件
2.TBatchMove控件的使用
TBatchMove允许在一组记录或是整个数据表中执行特种作业,这个控件的主要用途
在于 把数据从服务器中卸到本地的数据源供分析或进行其他操作。TBatchMove可
以在目的地建立 对应于原数据表内容的数据表,自动将列名及数据类型进行适当的
对应操作。
TBatchMove两个特性指明批量移动(Batch Move)操作的源表及目的表。Source指定
一个 对应于已有的源数据表的数据集(一个Tquery或Ttable控件),Destination指
明对应于一个数 据库数据表的Ttable控件,目的数据表可以是已经存在的也可以是
不存在的。
Mode特性指明TBatchMove对象所要做的事情:
我们可以根据batCopy模式,对数据库类型进行适当的转换,以下是从dBASE类型到其
它类 型之间的转换结果:
数据库转换举例
现有用Foxbase开发的财务程序中的会计科目数据库(kjkmk.dbf),系统将升级到
Window s环境下开发,数据库将采用Paradox语言。为了沿用该库结构和数据,可采
用如下方法进行转 换。
1.Datasource1控件:
AutoEdit True
DataSet Table1
Enabled True
Name DataSorce1
2.Table1控件:
DatabaseName cw
Name Table1
Readonly False
TableName KJKMK
TableType udBase
Datasource1控件和Table1控件共同定义被转换的源文件,该文件是在别名为cw里的
kjk mk,文件类型为Dbase。
3.BatchMove1控件:
Destination Table2
Mode balCopy
Name BatchMove1
Sorce Table1
MatchMovel控件定义转换类型为Copy以及源文件、目标文件。
4.Datasource2控件:
AutoEdit True
DataSet Table2
Enabled True
Name DataSorce2
.Table2控件:
DatabaseName cwdb
Name Table2
Readonly False
TableName KJKMK
TableType uParadox
Datasource2控件和Table2控件共同定义转换后的目标文件,该文件是在别名为
cwdb里的 kjkmk,文件类型为Paradox。
6.StringGrid1控件:
Datasorce Datasorce1
Name StringGridl
StringGridl网格控件先定义源文件,执行转换后再定义目标文件,主要用于方便查
看。
7.Button1控件:
OnClck ButtonClck
OndragDrop
Ondragover
OnEnddrag
该控件有一个OnClick事件,表示执行文件类型转换。其代码如下:
procedure TForm1.Button1Click(Sender:TObject);
begin
BatchMove1.execute;
end;
经上述方法定义,编译执行后,即可将kjkmk.dbf文件转换成kjkmk.db文件,然后就可
以用 Database Desktop工具对其进行修改调整。
用此方法还可进行其它任意文件的转换。
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.107]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.292毫秒