以下是数据导出到TXT文件的代码,要导出的数据有200个文件左右,1万多条记录,导出中途出错,大概能导出60多个文件。   
if CheckBox2.Checked  then
    begin
    //
    fcProgressBar2.Min:=0;
    fcProgressBar2.Max:= DataM.ADOQuery1.RecordCount;
    fcProgressBar2.Step:=1; {   if not DirectoryExists(FilePath+'\'+DataM.ADOQuery1.Fields[0].AsString) then
     try
       CreateDir(FilePath+'\'+DataM.ADOQuery1.Fields[0].AsString);
     except
       showmessage('创建目录<' + FilePath + '>失败!');
       Exit;
     end; }
    //
      with  DataM.ADOQuery1 do
       begin
        first;
        while not eof do
         begin
          if DWTFBM=trim(fieldbyname('单位编码).asstring) then
           begin
            for  i:=0 to DataM.ADOQuery1.Fields.Count-1 do
             begin
              if (DataM.ADOQuery1.Fields[i].DataType=ftBCD) OR (I=18) OR (I=19) OR (I=20) OR (I=21) OR (I=22) then
               begin
                //try
                 ln:=DataM.ADOQuery1.Fields[i].AsCurrency;
                 write(tf,Format('%.2f',[LN]));
               end
             else
               begin
                lns:=DataM.ADOQuery1.Fields[i].AsString;
                write(tf,lns);
               end;
              if (i<>DBGridEh1.FieldCount -1) then Write(tf,',') else     //加入TAB
               Write(tf,'')
            end;
              Write(tf,#13#10);   //加入回车换行           end //end if DWTFBM= ......
          else
           begin
            if Fields[0].AsString<>'' then
               filename:='salary'+DMUnit.DataM.ADOQuery1.Fields[0].AsString+trim(ComboBox1.Text)+trim(ComboBox2.Text)
            else
               filename:='salary'+inttostr(isnullsign)+trim(ComboBox1.Text)+trim(ComboBox2.Text);
              FilePath:=edit2.Text+'\'+filename+'.txt';
              assignfile(tf,FilePath);
              rewrite(tf);            for i:=0 to DBGridEh1.FieldCount -1 do
              begin
                write(tf,DBGridEh1.Columns.Items[i].FieldName);
                if (i<>DBGridEh1.FieldCount -1) then Write(tf,',') else    //加入TAB
                  Write(tf,'')
               end;
                Write(tf,#13#10);   //加入回车换行           end; //end if DWTFBM= ......else           DWTFBM:=trim(fieldbyname('单位编码).asstring);
           inc(isnullsign);
           fcProgressBar2.Progress:=DataM.ADOQuery1.RecNo;
          next;
         end;//end while       end; //end with
       
    end;  //end if
    closefile(tf);
   //   
  showmessage('操作完成!')