我在一个循环里想使用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;

解决方案 »

  1.   

    这儿有问题!
    if dm1.eventCds.Active then
      begin
        Close;
      end;
    你这样不是让窗体close了?应该是dm1.eventCds.close呀!
      

  2.   

    改代码:
    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;
    应该可以了