我在一个循环里想使用TClientDataSet的SaveToFile实现数据库表的选择备份,可是只有第一张选择的表可以备份,其它的表备份完的数据都是第一张表的, 不知道为什么?
而且莫名其妙的退出程序!下面是我的一段程序,表名放在listviewselect里面. For i:= 0 to lCount -1 do
begin
if ListViewSelect.Items.Item[i].Checked then
begin
tname:=ListViewSelect.Items.Item[i].Caption;
sql:= 'select * from '+user+'.'+tname;
if dm1.eventCds.Active then
begin
Close;
end;
dm1.eventCDS.CommandText:= sql;
dm1.eventCDS.Open;
dm1.eventCDS.SaveToFile(path+tname+'.dat');
end;
end;
而且莫名其妙的退出程序!下面是我的一段程序,表名放在listviewselect里面. For i:= 0 to lCount -1 do
begin
if ListViewSelect.Items.Item[i].Checked then
begin
tname:=ListViewSelect.Items.Item[i].Caption;
sql:= 'select * from '+user+'.'+tname;
if dm1.eventCds.Active then
begin
Close;
end;
dm1.eventCDS.CommandText:= sql;
dm1.eventCDS.Open;
dm1.eventCDS.SaveToFile(path+tname+'.dat');
end;
end;
if dm1.eventCds.Active then
begin
Close;
end;
你这样不是让窗体close了?应该是dm1.eventCds.close呀!
For i:= 0 to lCount -1 do
begin
if ListViewSelect.Items.Item[i].Checked then
begin
tname:=ListViewSelect.Items.Item[i].Caption;
sql:= 'select * from '+user+'.'+tname;
dm1.eventCds.close;
dm1.eventCDS.CommandText:= sql;
dm1.eventCDS.Open;
dm1.eventCDS.SaveToFile(path+tname+'.dat');
end;
end;
应该可以了