请教各位,ADO的loadfromfile多次导入文件时出错! ( 积分: 50 )

  • 主题发起人 主题发起人 xhr
  • 开始时间 开始时间
X

xhr

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.BitBtn1Click(Sender: TObject);
var
f:string;
begin
adoquery1.Open; //保存要导入的多个表名
//
while not adoquery1.Eof do begin
f:=adoquery1.FieldByName('bm').AsString;//bm列为表名
//
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from '+f);
adoquery2.Open;
adoquery2.LoadFromFile('e:/tran/'+f+'.xml');//数据已导出在e:/tran/表名.xml
adoquery1.Next;
end;
end;
为何每次执行第二次就出错:
....'文件 select * from cgd1 无法被找到'的错误 (cgd1为第二表名)
 
procedure TForm1.BitBtn1Click(Sender: TObject);
var
f:string;
begin
adoquery1.Open; //保存要导入的多个表名
//
while not adoquery1.Eof do begin
f:=adoquery1.FieldByName('bm').AsString;//bm列为表名
//
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from '+f);
adoquery2.Open;
adoquery2.LoadFromFile('e:/tran/'+f+'.xml');//数据已导出在e:/tran/表名.xml
adoquery1.Next;
end;
end;
为何每次执行第二次就出错:
....'文件 select * from cgd1 无法被找到'的错误 (cgd1为第二表名)
 
adoquery2.LoadFromFile('e:/tran/'+f+'.xml');
注释此行代码就没有问题,
否则执行第二次时在
adoquery2.Open;
时就提示'无法被找到'的错误!
 
搞不懂你要干什么。

你查询后,AdoQuery2中已结有结果集了,而你不用这个结果集,即要从文件装入另一个结果集。

如果你要从文件装入以前保存的结果集,请先清空SQL语句。
 
TO iamfish:
你误会我本意了,这是实现一个数据交换的功能,首先从A机器上把数据导出放到目录下,再通过网络传到B机器!
这时就需要这些文件导入到B机器上,所以需要先通过adoquery2把B机器上的表打开,然后再相应的文件loadfromfile来导入数据!
 
真搞不懂你要说什么啊,既然你要把A机器的表,导入到B机器,你也应该是Open完成后用SavetoFile来保存啊,怎么可能用LoadFromFile在导入数据呢?
你糊涂了吧你.(用周星驰的口吻).
 
TO windcowboy:
可能是我没表达清楚,我已经实现了导出,现在要实现的导入功能啊!
就是说已经把导出的文件放在了E:/TRAN/对应的表中.xml中
现在 要实现的是,在adoquery2中select * from 表,
然后再通过 loadfromfile来导入指定目录下的文件啊!
 
请各位帮帮忙,为什么只执行一个表就可以,当执行到第二表时,就提示出错呢?
 
需要楼主确定一下:
你是准备把XML文件作为数据源(1)还是另有ADO联接的数据库(2)?
如是1:adoquery2.LoadFromFile('e:/tran/'+f+'.xml');
如是2:adoquery2.SQL.Add('select * from '+f);
 
问题已搞定!多谢!
 
多人接受答案了。
 
后退
顶部