怎样将loadfromfile('x.xml')的数据直接提交到数据库?(为什么直接提交不上?(100分)

  • 主题发起人 主题发起人 foreverm
  • 开始时间 开始时间
F

foreverm

Unregistered / Unconfirmed
GUEST, unregistred user!
我adoquery.loadfromfile了几条数据,可是无法post上,
(我insert或者edit一条数据,也不能一起将loadfromfile的数据提交。)
请教怎样不用插到另外的dataset而可以将数据提交数据库?
adoconnection1.BeginTrans;
adoquery1.LoadFromFile('D:/adotable.xml');
adoquery1.edit;(... 我在这里乱试了一堆
adoquery1.Post;
adoquery1.UpdateBatch;(... 我在这里乱试了一堆
adoconnection1.CommitTrans;
 
我也感觉ADO提供导入导出文件主要是为了离线之用,但是如果这样应该可以把离线变更信息
提交,我试了一下暂没解决,但实在没法的话用两个ADOQuery,一个连数据源,一个连文件
一个ADOquery向另一个ADOquery追加。
 
其时我也有这类的情况我把个数据集(如DD2)的数据存为文件,

我在SQL中想通过loadfromfiel的方式载入速度很快如果用insert的话

我有几十万的记录会死人的..

如有高手作答我可以加200分!









 
insert 的方法是比较慢,但可以优化,我作过80 万条记录的追加,用时20 分钟,
我是从 Txt 文件来的,最快的要数存储过程了,
其次是Ado 原生addnew 方法(比较麻烦)
再次参数赋值
再到 Insert 直接方法。


对这个问题,我想一个DATAset 肯定是搞不定的,要两个,
.xml 的 那个的记录移动要用:adodataset.recordset.movenext 速度比adodataset.next
能提高至少20 倍。
参数赋值法 在循环的开头作好参数,Perpared 好,在循环里直接给参数送 execute 就
一条记录 OK 了。
这是我现在的用法,可以说是最好使的了,(对我的程序而言)。
也可以参考
http://www.delphibbs.com/delphibbs/dispq.asp?lid=507501
 
打开ADODB.pas,找到TADOCUSTOMDATASET,看看它的LOADFROMFILE定义就明白了,它在
从文件中读取数据前,已经CLOSE过了。
 
要是用loadfromfile不行吗?
我是想把另一个数据库中的内容导入。
 
xlwang的方法就挺好,你不妨试试。唯一不同的就是你的源ADO是从XML中获取数据而已。
 
看看DELPHI自带的例子,/demos/ado/briefcase.
 
谢谢大家,我想从根本上解决此问题,不是简单的实现目的。
 

Similar threads

后退
顶部