高手请进/数据库转换问题;200份悬赏!帮我一把,兄弟。(200分)

  • 主题发起人 主题发起人 jswqg
  • 开始时间 开始时间
J

jswqg

Unregistered / Unconfirmed
GUEST, unregistred user!
高手啊:
我原先的数据库是用delphi自带的database desktop中的paradox7设计的;
先上头有令:改用sql server7.0开发,建立企业c/s结构。
原先的及台单机上均有数据(车间、财务工资、总经理办公[合同等]),
请高手赐教如何将数据库转换为sql server7.0格式?
 


 

 
用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.DbGrid1控件:

Datasorce Datasorce1

Name DbGridl

DbGridl网格控件先定义源文件,执行转换后再定义目标文件,主要用
于方便查看。

7.Button1控件:

OnClck ButtonClck

OndragDrop

Ondragover

OnEnddrag

该控件有一个OnClick事件,表示执行文件类型转换。其代码如下:

procedure TForm1.Button1Click(Sender:TObject);

begin

BatchMove1.execute;

end;

经上述方法定义,编译执行后,即可将kjkmk.dbf文件转换成kjkmk.db
文件,然后就可以用 Database Desktop工具对其进行修改调整。

用此方法还可进行其它任意文件的转换。




 
 
 






 
batchmove


update bde to 5.1.1
 
张剑波你费话罗嗦那么一大通,有没有搞错?
用delphi里的datapump就行了。在开始菜单上。
在ODBC中设一个连SQL Server 的别名。
datapump效率奇快,比用batchmove编程实现快何止十倍。
我干过公安信息系统,转换过几百万的人口数据,带照片的
够大吧?只用了数小时。
 
用delphi5带的datapump工具即可。
需要先建立对sql server的ODBC数据源。
 
datapump
更方便实用powerbuilder.
 
sql server不是有导入数据的功能吗?
 
用delphi自带的datapump(d4,d5),delphi3中叫data migration wizzard.使用之前最好将BDE
upgrade到最新版(bde5.1.1好象).步骤如下
1,在SQL 7上建立一database(有无table皆可).在控制面板的ODBC中建立DSN(如果是NT则需要reboot).
然后在BDE中将会出现与DSN同名的数据库alias.
2, 建立已有数据库(paradox7)的alias.
3, 使用datapump,一步步来就行了。

larry le
 
對呀﹐用datapump轉﹐簡直是照表搬﹐只要你不改動什么數據結構﹐那簡直轉起來太爽了。
我們轉過從dbf,mdb轉Oracle﹐一點問題都沒有。
 
1.用delphi5带的datapump工具
2.batchmove
本人认为1 的方法较好
 
各位兄台:
你们好!我很奇怪,为什么你们要用delphi的datapump,
并不是它不好,为什么不用sql server的import data,
sql server的数据导入功能是很强大的。欢迎各位赐教!
 
不管什么方式,得到的结果同目标仍然有很大差距,很多地方还是不得不手工修改。
我曾经试过,即使是微软自己的 Access 和 SQL Server 之间转换,也不尽如人意。
 
Paradox 7转换时可能因为索引问题出错,最好检查一遍索引
这样用DataPump转应该没问题了
 
用datapump吧,微软那个Import data不好用,问题太多了。
 
我用datapump时出错:Paradox >>>Access
Paradox加了密码,无密码时正常,why


 
各位仁兄:
问题已解决,多谢!
分已瓜分好了!
 
多人接受答案了。
 
后退
顶部