我的一张表(SQL SERVER 2000)"content" 字段属性是Image, 存了文件内容,
我想插一条记录,内容引用另一条记录,但我不知道content该怎么赋值,我的“三板斧”
fieldbyaname('content').asstring:=.....? 不行,
TBlobField(FieldByName('content')).LoadFrom....好象也不行请帮帮我!

解决方案 »

  1.   

    UPDATE更改图片字段    
      读: 
    TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");TBlobStream * pmem=new TBlobStream(pField,bmRead);pmem->Seek(0,soFromBeginning);Graphics::TBitmap * pBitmap=new Graphics::TBitmap();pBitmap->LoadFromStream(pmem);Image1->Picture->Assign(pBitmap);delete pBitmap;delete pmem;写:TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");TBlobStream * pmem=new TBlobStream(pField,bmWrite);pmem->Seek(0,soFromBeginning);Graphics::TBitmap * pBitmap=new Graphics::TBitmap();pBitmap->Assign(Image1->Picture->Graphic);pBitmap->SaveToStream(pmem);delete pBitmap;delete pmem;注意:一定要用此方法进行读写,因为实际上它是以二进制流的方式存入数据库! 
     
     
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);var
      Stream1: TBlobStream;
      Stream2: TStream;
    begin
      Stream1 := TBlobStream.Create(Table1Notes, bmRead);
      try
        ClientDataSet1.Edit;
        { here抯 a different way to create a blob stream } 
        Stream2 := ClientDataSet1.CreateBlobStream(ClientDataSet1.FieldByName('content'), bmReadWrite);
        try
          Stream2.CopyFrom(Stream1, Stream1.Size);
          ClientDataSet1.Post;
        finally
          Stream2.Free;
        end;  finally
        Stream1.Free;
      end;
    end;