关于数据备份后的恢复(怎么没人回答啊,帮帮我吗老大们,着急啊!!!) (50分)

  • 主题发起人 主题发起人 geyufly
  • 开始时间 开始时间
G

geyufly

Unregistered / Unconfirmed
GUEST, unregistred user!
我把数据用ADOQUERY备份成了XML文件的形式
if SaveDialog1.Execute then
ADOQuery3.SaveToFile(SaveDialog1.FileName,pfXML);
还原时用
ADOQuery1.Active:=False;
ADOQuery1.LoadFromFile(OpenDialog1.FileName);
ADOQuery1.Active:=True;
这样只能显示出备份过的数据如果要把我备份在文件中的这些数据写回到它以前的表中,覆盖现在的记录该怎么办???

 
装入数据后:
for i:=0 to adoquery1.recordcount-1 do begin
  用adoquery1中的数据更新数据源;
end;
 
请问楼上,“用adoquery1中的数据更新数据源;”是什么意思,能具体讲讲吗?
 
var
adoquery1,adoquery2:tadoquery;
begin
  首先变量初始化;
ADOQuery1.Active:=False;
ADOQuery1.LoadFromFile(OpenDialog1.FileName);
ADOQuery1.Active:=True;
  将ADOQuery2的Datasource或Connectionstring设置好;

for i:=0 to adoquery1.recordcount-1 do begin
ADOquery2.close;
ADOquery2.sql.clear;
  ADOquery2.sql.add(使用数据更新语句将adoquery1中的每一条记录更新到ADOquery2的数据源中);
try
ADOquery2.execsql;
except
异常处理;
  end;
end;
end;
总体就是这个意思吧![:)]
 
有这样个问题,不知道你如何看,如果我备份出来的数据有几万条或者更多,这样你的那个FOR
循环会不会显得非常慢且占用很多资源?
谢谢你
 
当然,如果数据量很大,这种处理方法会很慢。不过好象没有什么好的办法?要不就用
updataBatch试试,不过我没有用过。
 
updatabatch在李维的书上到是说的头头世道可我试了好象不行饿,没办法,还有没有其他好一点的办发啊?
着急啊·!
 
不行就先用那个慢办法试试,看看能不能接受?如果在可接受的范围内就先用它吧!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部