记得以前用过有个BatchMove的控件(Delphi带的),实现起来很简单。

解决方案 »

  1.   

    使用Batchmove组件了,以下是改组件的相关说明:
    TBatchMove允许在一组记录或是整个数据表中执行特种作业,这个控件的主要用途在于 把数据从服务器中卸到本地的数据源供分析或进行其他操作。TBatchMove可以在目的地建立 对应于原数据表内容的数据表,自动将列名及数据类型进行适当的对应操作。TBatchMove两个特性指明批量移动(Batch Move)操作的源表及目的表。Source指定一个 对应于已有的源数据表的数据集(一个Tquery或Ttable控件),Destination指明对应于一个数 据库数据表的Ttable控件,目的数据表可以是已经存在的也可以是不存在的。Mode特性指明TBatchMove对象所要做的事情:我们可以根据batCopy模式,对数据库类型进行适当的转换。
    数据库转换举例现有用Foxbase开发的财务程序中的会计科目数据库(kjkmk.dbf),系统将升级到Window s环境下开发,数据库将采用Paradox语言。为了沿用该库结构和数据,可采用如下方法进行转 换。1.Datasource1控件:AutoEdit TrueDataSet Table1Enabled TrueName DataSorce12.Table1控件:DatabaseName cwName Table1Readonly FalseTableName KJKMKTableType udBaseDatasource1控件和Table1控件共同定义被转换的源文件,该文件是在别名为cw里的kjk mk,文件类型为Dbase。3.BatchMove1控件:Destination Table2Mode balCopyName BatchMove1Sorce Table1MatchMovel控件定义转换类型为Copy以及源文件、目标文件。4.Datasource2控件:AutoEdit TrueDataSet Table2Enabled TrueName DataSorce2.Table2控件:DatabaseName cwdbName Table2Readonly FalseTableName KJKMKTableType uParadoxDatasource2控件和Table2控件共同定义转换后的目标文件,该文件是在别名为cwdb里的 kjkmk,文件类型为Paradox。6.StringGrid1控件:Datasorce Datasorce1Name StringGridlStringGridl网格控件先定义源文件,执行转换后再定义目标文件,主要用于方便查看。7.Button1控件:OnClck ButtonClckOndragDropOndragoverOnEnddrag该控件有一个OnClick事件,表示执行文件类型转换。其代码如下:procedure TForm1.Button1Click(Sender:TObject);beginBatchMove1.execute;end;经上述方法定义,编译执行后,即可将kjkmk.dbf文件转换成kjkmk.db文件,然后就可以用 Database Desktop工具对其进行修改调整。用此方法还可进行其它任意文件的转换。