请教如何在不同数据库之间传递数据(100分)

  • 主题发起人 主题发起人 yysun
  • 开始时间 开始时间
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
我想定义一个ASCII格式的通用的数据库数据传递文件 (*.dat),
这样数据库中数据可以相互传递:

Foxpro <--> +------------+ <--> SQL server
Paradox <--> | *.dat | <--> Access
dBase <--> +------------+ <--> SyBase

各位大虾有何高招赐教.
 
用TxtTable构件行吗?把数据输出到文本文件中,
然后再读入另一个数据表,格式可以自己定义.

http://sunsite.icm.edu.pl/delphi/ftp/d30free/txttable.zip
可惜没有源码,也不知道batchmove行不行.
 
还是用dbexport吧,在同一页上,关键是有源码,
不满意可以自己改造.

(我马上就要把我的备份/恢复程序改用这个构件!)
 
我是有这个 dbexport 的,它的问题是:
1、如果数据表中有 Memo 字段就没有办法了。
2、没有保存字段类型、长度、索引(Key or Index)信息
3、不一定很标准

象 CAD 和 GIS 大家基本都能操作 DXF。
我想了解在数据库方面,没有一个数据库交换用的ASCII文件标准或者事实上的
标准,其格式是什么。如遇 Memo、Binary类型字段如何处理呢?

我想做个程序叫 DataAnywhere 或者 DataVampire 能从一种 DBMS 中吸取数据,
转入其他DBMS中 :-)



 
很多特殊的字段不可能用Ascii,所以如果要支持多种数据格式,
只能用自己的程序了,例如BatchMove.

Delphi不是有个Data Migration Wizard吗? 可我看它也不能保证
所有DBMS和DataType都搞定.
 
斑竹!就算是INPRISE的产品也不能保证把所有的信息都转换,我的VFP数据库就
不能完全转换成PARADOX,索引有问题,我想损失是难免的,自己也泻不了那么超
人的程序(所有格式)。
 
难难难!

各家的数据库关键部位都不开放, Index问题? 版本问题? ...???
 
但是,我设想中的是个通用的标准,完全从数据库理论出发(DBMS Independent).
可以定义 Primary Key, Referential Integrity, Binary field etc.
各家 DBMS 能识别多少就识别多少,象 IE 和 Netscape 对待 DHTML 那样。

DXF 就是事实上的图形标准,Intergraph,ACR/INFO,MAPINFO 都能读写
DXF 文件。但不一定保证 100% pure DXF.

刚刚想好那个挺得意的名字 DataVampire(R),大家可别马上都给我否定掉 :(
 
XML (Extensible Markup Language)
语言设计的目的之一就是提供你所需要的功能。
XML是HTML的下一代版本,是精简后的SGML,目前版本为1.0,是W3C(互联网委员会)制定的标准。
XML更注重数据的内容与结构,HTML主要是用于数据的表现(presentation),XML适合于网络上的传输。
XML是纯文本的,它支持UniCode,因而能很好地适应于中文环境。
XML独立于平台,独立于厂商,独立于语言,独立于系统.......
XML在数据格式里的重要性类似于JAVA在编程语言里的重要性。
IBM, AT&T, Microsoft, Sun等都在努力开发关于XML的产品,足以显示XML在未来信息系统中的地位。
详细内容请在Yahoo中搜索XML,并访问下列网址
http://www.projectcool.com/developer/xmlz/index.html
http://www.projectcool.com/developer/xmlz/xmlbasics/
http://www.alphaWorks.ibm.com/
http://www.xml.com/
http://www.microsoft.com/xml/
http://www.w3.org/XML/
http://www.stud.ifi.uio.no/~larsga/linker/XMLtools.html
这是数据库研究领域关于异构数据库互操作方面的最新发展方向,并得到了工业界的大力支持。
呵呵,数据格式只是解决语法(sytax)问题,更困难的是语义(semantics)的集成......
 
简言之, 要实现这些数据转储, 要求数据表格的字段类型匹配,
然后用多个TQuery或TTable通过TBatchMove实现.
 
我不太明白你的意思,但我在工作中也遇到此类问题,比如将DB2的数据送入到
Paradox中。我的做法是,用BDE建立两类数据别名。然后在QUER1中查询DB2数据
库,在使用“数据移动BANTHMOVE”控件将QUERY1中的数据移入Paradox数据库中
,至于怎么移动的,就交给BDE来完成了。我实验成功了!不知能否满足你的
要求!
 
Yes, I think what formatdisk said can use!
 
yysun, 这个问题可以结束了吗?
 
yysun:ms sql 有个 BCP 可以用,不过还是不能保存所有信息,
基本上没办法,ODBC 也解决不了的。
 
yysun, 这个问题可以结束了吗?
 
如果不考虑索引和部分数据类型,用Tbatmove可以的。除了acess我没有转化外,
其他的我都试过了。但是前提的有些大型数据库的字段类型在转化过程中,可能不行(尤其是那些带自定义类型的数据表,如我在Oracle的数据转化时遇见过)。常见类
型的转化是没问题的。
 
多人接受答案了。
 
版主大人:

我的那个备份组件不是很接近吗?

现在已经能备份所有的字段类型、数据,也能取出脚本,包括索引,

有时间改进一下就符合你的要求了。

看来这东西的确需求很广,如果有人合作,作一下商品化,也是条路子。
 
后退
顶部