在试图通过一TStream变量将一ClientDataSet的DATA转移到另一ClientDataSet中时,发现当对一个没有指定DSP的ClientDataSet执行LoadFromStream方法时会报错,难道一定要与数据库连接才能进行该方法吗?困惑!DELPHI帮助中对TClientDataSet的LoadFromStream方法说的过于简单,只是指出是其他TClientDataSet的SaveToStream方法产生的STREAM即可成功执行,但对于三层结构的应用程序来说,使用此方法进行赋值时肯定不必和数据库直接连接的。请问,一个孤立的ClientDataSet能否使用LoadFromStream方法从另外的ClientDataSet中获得DATA数据包?就象直接使用DATA赋值一样,谢谢

解决方案 »

  1.   

    直接用DATA属性进行赋值好像就行吧,用不着用流的方式吧?
      

  2.   

    ClientDataSet1.CloneCursor();不知道能不能满足您的要求---------没测试,不能用别怪我------------------
      

  3.   

    SORRY,因为我是要对中间的变量进行一些处理,同时还会进行远程调用,考虑到LoadFromStream方法不可避免
    CloneCursor是直接复制对象引用,只能在本地进行处理,并不能达到我想要的效果。请尝试一下LoadFromStream方法,我这边测试的是ClientDataSet一定要连接数据库的谢谢关注!
      

  4.   


              MusicFile:=TFileStream.Create(MusicInfo.FileName,fmOpenRead);
              MusicStream:=QueryMusic.CreateBlobStream(QueryMusic.FieldByName('data'),bmWrite);
              try
                MusicStream.CopyFrom(MusicFile,MusicFile.Size);
              finally
                MusicFile.Free;
                MusicStream.Free;
              end;
            end;