急急急!!!XML问题!!!解决就给分!!!

Comer 2003-11-17 08:44:24
碰到个非常棘手的问题,请高手们帮忙!

有数据库A、数据库B,各有数据表test,字段名、类型、长度完全一样。
要求把数据库A的test里的数据通过XML文件的方式导入数据库B的test表里,
要考虑主键重复问题。
即:通过SQL语句把符合条件的A.test里的数据写入XML文件,然后通过读取XML文件
的内容把数据导入B.test。

哪位高手给点源代码呀。先谢谢了!
可以发到我的信箱里:comerliang@163.com

...全文
29 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
Comer 2003-11-20
  • 打赏
  • 举报
回复
to qdwind(风中浪子)
你说的方法,我在应用程序里实现了,没有问题,但是如果写ActiveX的话,就出问题
帮我看一下下面这个帖子吧
http://expert.csdn.net/Expert/topic/2474/2474643.xml?temp=.3731195
先谢了!
tonylk 2003-11-20
  • 打赏
  • 举报
回复
学习。。
XGZ 2003-11-20
  • 打赏
  • 举报
回复
楼上的单个表是没问题的,实际使用一个xml文件我一般都有多个表
猛禽 2003-11-20
  • 打赏
  • 举报
回复
这么多人写代码?

最简单的还是用CDS:

放三个控件:ADODataSet(Select A.test 中的数据), DataSetProvider, ClientDataSet
然后把ADODS和CDS都Open一下。
然后调用CDS的SaveToFile,批定文件名和格式(dfXML),即可将数据表生成一个XML文件

到另一边后也是放一个CDS,然后用LoadFromFile即可导入,然后自己想办法吧CDS里的数据导到B.test里吧(最简单的办法是用循环了)
XGZ 2003-11-20
  • 打赏
  • 举报
回复
我用xml写了一个,用xml实现简单,所以建议用xml,不过原代码那就自己写吧,~_~
qdwind 2003-11-20
  • 打赏
  • 举报
回复
下面是读XML文件的方法,你可以试一下,XML的结构跟tree差不多,研究一下没什么复杂的

uses xmldoc,xmlintf;

procedure TForm1.Button1Click(Sender: TObject);
var xml:txmldocument;
root,node1:ixmlnode;
tabname,fname:string;
begin
xml:=TXMLDocument.Create(application);
xml.XML.LoadFromFile(opendialog1.FileName);
xml.Active:=true;
root:= xml.DocumentElement.ChildNodes.First;
root:= root.ChildNodes.FindNode('Table1');
tabname:= root.Attributes['Tablename'];
node1:= root.ChildNodes.FindNode('Fields');
fname:= node1.ChildNodes.FindNode('FieldName').Text;
xml.Active:=false;
end;
猛禽 2003-11-20
  • 打赏
  • 举报
回复
^_^急了吧
pchaos 2003-11-20
  • 打赏
  • 举报
回复
没这么没风度吧
guoguo303 2003-11-20
  • 打赏
  • 举报
回复
不是吧,我纯粹是来学习的,我不懂XML
Comer 2003-11-20
  • 打赏
  • 举报
回复
TNND

我决定分都给下一个来者。。。
georgehappy 2003-11-20
  • 打赏
  • 举报
回复
晕,一个星的大哥怎么这样啊,别人送你的帐号吗?
猛禽 2003-11-20
  • 打赏
  • 举报
回复
DataSetProvider是用MIDAS做三层时用的控件,这里只是用它来把数据从DataSet里导到ClientDataSet里
这里的用法很简单:
把DataSetProvider的DataSet属性设置为ADODataSet即可,然后把ClientDataSet的ProviderName属性设置为DataSetProvider即可,只要写三行代码:
ADODataSet.Open;
ClientDataSet.Open; // 甚至上一句也可以不要,CDS会自动操作
ClientDataSet.SaveToFile( 'filename.xml', dfXML );
即可将ADODataSet中的内容保存为filename.xml
Comer 2003-11-20
  • 打赏
  • 举报
回复
to Raptor(猛禽)
"放三个控件:ADODataSet(Select A.test 中的数据), DataSetProvider, ClientDataSet
然后把ADODS和CDS都Open一下。
然后调用CDS的SaveToFile,批定文件名和格式(dfXML),即可将数据表生成一个XML文件"

DataSetProvider干什么用呢?我没用过ClientDataSet,能说详细些吗?
ah__fu 2003-11-18
  • 打赏
  • 举报
回复
天哪!难道不会直接用SQL SERVER转啊!中间非得用个什么XML!脱裤子放屁啊!
Comer 2003-11-18
  • 打赏
  • 举报
回复
to shagan(上海外地人)
可以给点代码吗?
Comer 2003-11-18
  • 打赏
  • 举报
回复
真的没人做过这方面的东西吗?
shagan 2003-11-18
  • 打赏
  • 举报
回复
用ClientDataSet
操作XML可以用XMLDocument
可以考虑三层结构,中间传送的是XML。
SOAP也是如此
soaringsouth 2003-11-18
  • 打赏
  • 举报
回复
TBatchMove,看demo。用XML干嘛?这么麻烦。
猛禽 2003-11-18
  • 打赏
  • 举报
回复
没空给你写代码

DELPHI中可以用ClientDataSet进行数据库表和XML之间的来回转换,自己去看DEMO
Comer 2003-11-18
  • 打赏
  • 举报
回复
可能是我说的不够具体吧,我现在要做的是异地的俩个数据库的操作,如果通过远程连接的方式,安全性方面有问题,老板不让用这种方式。
然后我们用XML文件做载体的方式,传输的时候做压缩、加密,这样安全性相对比较可靠了,但是我们现在用的方法都要另外生成影射文件,很烦琐。
所以我想delphi可不可以直接对xml操作来实现和数据库的交互呢?
加载更多回复(8)

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧