你的表中的字段不全是字符型吧,
看样子好象的AsString做转换时产生了异常。
你的某一条记录不能转换成字符型。最好能确定是哪一条记录的错。可以这样:var
  i:integer;  BackFile:=TStringList.Create;
  if not Query1.Active then Query1.open;
  i:=0;
  while not Query1.Eof do begin
    Str:='';
    inc(i);
    For i:=0 to query1.FieldCount-1 do
        Str:=str+query1.Fields.Fields[i].asstring;
    try
    BackFile.Add(str);
    except
      showmessage('errer at:'+inttostr(i));
    end;
    Query1.Next;  end;
  BackFile.SaveToFile('LT.DAT');
  

解决方案 »

  1.   

    sorry ,你已经用了i   哪就在程序中换个别的变量
      

  2.   

    zeroxy() :
    这位兄弟呀,好像并不是这样的,我知道是那条记录出错了,但是后来我把那条记录给删除了,再运行,想不到以前能通过的记录又出错了,真奇怪,请再想想,各位帮帮忙呀,很急的。
      

  3.   

      可能超出TStringList能处理的极限了!
    改用TMemoryStream.要想压缩,请参考Delphi zlib.pas
      

  4.   

    好像不是的,我刚才试了不加入TSTRINGLIST中,只是移动记录,但仍出相同的错