procedure TForm1.Button4Click(Sender: TObject);
var
  n,n1,n2,n3,n4,n5,n6:string;
  f:textfile;
  Slist:Tstrings;
begin
  //创建一个文件.
  SList := Tstringlist.create;
  slist.savetofile('d:\Delphi7\bb.txt');连接数据库 读数据
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('select * from message');
  adoquery1.Open;
  while not Eof do                               //执行的时候这里报"I/O err6"错误
  begin
     n1:=Trim(adoquery1.Fields[0].AsString);
     n2:=Trim(adoquery1.Fields[1].AsString);
     n3:=Trim(adoquery1.Fields[2].AsString);
     n4:=Trim(adoquery1.Fields[3].AsString);
     n5:=Trim(adoquery1.Fields[4].AsString);
     n6:=Trim(adoquery1.Fields[5].AsString);
     n1:=n1+','+n2+','+n3+','+n4+','+n5+','+n6;
     AssignFile(f,'d:\Delphi7\bb.txt');
     append(f);
     Writeln(f,n1);
     CloseFile(f);
  end;
end;
我是想把数据库的字段取出来排列好加入','作为分割符 然后一条记录作为一行排列到新建的文档中去! 请问应该怎么循环才能把所有的记录都导入文本呢?

解决方案 »

  1.   

    也可以用adoquery1.SaveToFile()
      

  2.   

    hugolai(胖胖哥) :你说的那个adoquery1.next; 怎么用啊?
    能在我的程序里加一下 然后我试试啊 谢谢!
      

  3.   

    procedure TForm1.Button4Click(Sender: TObject);
    var
      n,n1,n2,n3,n4,n5,n6:string;
      f:textfile;
      Slist:Tstrings;
    begin
      SList := Tstringlist.create;
      slist.savetofile('d:\Delphi7\bb.txt');
      n:='曹晨';  adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select * from message');  adoquery1.Open;
      while not adoquery1.Eof do
      begin
      n1:=Trim(adoquery1.Fields[0].AsString);
      n2:=Trim(adoquery1.Fields[1].AsString);
      n3:=Trim(adoquery1.Fields[2].AsString);
      n4:=Trim(adoquery1.Fields[3].AsString);
      n5:=Trim(adoquery1.Fields[4].AsString);
      n6:=Trim(adoquery1.Fields[5].AsString);
      n1:=n1+','+n2+','+n3+','+n4+','+n5+','+n6;
      AssignFile(f,'d:\Delphi7\bb.txt');
      append(f);
      Writeln(f,n1);
      CloseFile(f);
      adoquery1.Next;
      end;
    end;