本帖最后由 kugoo2338903 于 2010-06-25 23:26:30 编辑

解决方案 »

  1.   

    Stream: TMemoryStream;
    //读取
    TBlobField(FieldByName('BlobField')).SaveToStream(Stream);
    //保存
    TBlobField(FieldByName('BlobField')).LoadFromStream(Stream);
    //读到字串变量的内存
    Stream.Posion := 0 ;
    Stream.Read(...)
    //由字串写到流中
    Stream.Posion := 0 ;
    Stream.write(...)
      

  2.   

    如果是Delphi2009或者Delphi2010可以这样写:
    var bStream:TStream;
        s:String;
    begin
      s:='中国abcdefg';//要写入的值
      Table1.Edit;
      bStream:=TBlobStream.Create(TBlobField(Table1.FieldByName('Field1')),bmWrite);
      try
        bStream.Write(Pchar(s)^,ByteLength(s));
        Table1.Post;
      finally
        bStream.Free;
      end;
    end;
      

  3.   

    这样读:
    var bStream:TStream;
        s:String;
    begin
      bStream:=TBlobStream.Create(TBlobField(Table1.FieldByName('Field1')),bmRead);
      try
        SetLength(s,bStream.Size div 2);
        bStream.Read(Pchar(s)^,bStream.Size);
        showmessage(s);
      finally
        bStream.Free;
      end;
    end;
      

  4.   

    上面的大侠,这是读写到数据库的过程,那读之后,写之前,是怎么和widestring这个类型的字符串转换的呢
      

  5.   


    这是读写到数据库的过程,那读之后,写之前,是怎么和widestring这个类型的字符串转换的呢
      

  6.   

    widestring?还不如ansistring来的明确吧