不行,需要从服务器将从数据库读取的图片传递到客户端。服务器端是一个DCOM服务器
。服务器端是一个Web应用程序,使用DCOMConection连接。
不要告诉我服务器端先保存成文件,因为是跨机器调用的。
不要告诉我看李维的书,里面没有。
问题的关键是将Stream的内容读入Variant然后在将其读入TStream不行。

解决方案 »

  1.   

        好象有个BLOBfiled,你可以将这个Field as 成TblobField 然后用SavetoFile的方法存到文件。
      

  2.   

    这个我知道,我的问题是如何通过Variant跨边界的传递图像数据。
      

  3.   

    那你有没有试过TMemoryStream或者是TOleStream?
      

  4.   

    你要先把OLEVariant转成某种类型,下面这段代码把它转成volestr,最后放置在StringStream中var
        p : pwidechar;
        bb : string;
        tempchar : integer;
        mm : SYSUINT;
        ss:TStringStream;
    begin       p := Tvardata(xo).volestr;
           setlength(bb,Length);
           mm := 1;
           while mm<=Length do
             begin
               tempchar := integer(p[(mm-1) div 2]);
               bb[mm]:= chr(tempchar mod 256);
               if mm<length then bb[mm+1]:= chr(tempchar div 256);
               mm := mm+2;
             end;       ss:=tstringstream.Create(bb);
    end;
      

  5.   

     TBlobField(Table1.FieldByName('bmpFieldName')).SaveToFile(FileName);
     即可从数据库中把图片存成文件。