用XML不更方便
ADODataSet.SaveToFIle(FileName,pfML)

解决方案 »

  1.   

    var
      P: PChar;
      S: Integer;
      BS: TADOBlobStream;
    begin
      if not (ADOTable1.State in [dsEdit, dsInsert]) then
        ADOTable1.Edit;
      BS := TADOBlobStream.Create(TMemoField(ADOTable1.Fields[1]), bmWrite);
      try
        S := Memo1.GetTextLen;
        Inc(S);
        P := AllocMem(S);
        FillChar(P^, S, #0);
        Memo1.GetTextBuf(P, S);
        BS.Write(P^, S);
      finally
        BS.Free;
        FreeMem(P, S);
      end;end;
      

  2.   

    是把整个TADODataSet的内容保存到流里,既实现TClientDataSet.Data功能!
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var cs : TMemoryStream;
    begin
      cs := TMemoryStream.Create ;
      ADOQuery1.SaveToFile('c:\s.xml',pfXML);
      cs.LoadFromFile('c:\s.xml');
      .....
      cs.Free;
    end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var sm: TMemoryStream;
        ADOQuery2 : TADOQuery;
    begin
      sm := TMemoryStream.Create ;
      sm.WriteComponent(ADOQuery1);
      sm.Seek(0,soFromBeginning);
      ADOQuery2 :=sm.ReadComponent(nil) as TADOQuery;end;initialization
      RegisterClasses(TADOQuery);
    end.
      

  5.   

    to sz1008你的这种方法能把数据保存在流里吗?我看好想不行,因为ADOExpress是对MS ADO接口的封装
    而不是直接管理内存数据。
      

  6.   

    不能保存数据,但用XML作缓冲就能达到目的,不这样的话,我也不知道了