请问如何在cs机构中,对一个表进行查询或添加操作后,把缓存中的数据写入文本文件中?具体怎么样做?最好能贴断代码!谢谢
虚心请教1!!!

解决方案 »

  1.   

    cs可以吗?
    多层倒是可以的.ClientDataSet.Delta就是被修改的数据,
    两层还要听听高手发言.
      

  2.   

    趁中午吃完饭,刚刚写的,试试看,可能有BUG
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Db, ADODB, Grids, DBGrids;type
      TForm1 = class(TForm)
        Button1: TButton;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        Edit1: TEdit;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure FileSave(astrTableName: string);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}
    procedure TForm1.FileSave(astrTableName: string);
    var
      strSql: string;
      dlgsavAcc: TSaveDialog;
      F:textfile;
      strField:string;
      intFieldCount,i:integer;
    begin
      strSql:='select * from ' + astrTableName;
      ADOQuery1.Close;
      ADOQuery1.Sql.Text:='';
      ADOQuery1.Sql.Text:=strSql;
      ADOQuery1.Open;
      dlgsavAcc:=TSaveDialog.Create(nil);
    //  dlgsavAcc.Filter := 'Text files (*.txt)|*.TXT';
      with ADOQuery1 do
      begin
        if dlgsavAcc.Execute then
        begin
          if FileExists(dlgsavAcc.FileName) then
             if Application.MessageBox(pchar('是否现有文件覆盖'),pchar('提示'),MB_OKCANCEL)<>idok then
               Exit;
          assignfile(F,dlgsavAcc.FileName);
          Rewrite(F);
          intFieldCount:=ADOQuery1.Fields.Count;
          while not Eof do
          begin
            strField:='';
            for i:=0 to intFieldCount-1 do
            begin
              strField:=strField+''','''+Fields.Fields[i].AsString;
            end;
            strField:=copy(strField,3,length(strField)-2)+'''';
            Writeln(F,strField);
            Next;
          end;
          CloseFile(F);
          Showmessage('导出成功');
      //          end;
        end
        else
          Exit;
      end;
      dlgsavAcc.Free;
     // daqTemp:=nil;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      FileSave(edit1.text);
    end;end.