我的一张表(SQL SERVER 2000)"content" 字段属性是Image, 存了文件内容,
我想插一条记录,内容引用另一条记录,但我不知道content该怎么赋值,我的“三板斧”
fieldbyaname('content').asstring:=.....? 不行,
TBlobField(FieldByName('content')).LoadFrom....好象也不行请帮帮我!
我想插一条记录,内容引用另一条记录,但我不知道content该怎么赋值,我的“三板斧”
fieldbyaname('content').asstring:=.....? 不行,
TBlobField(FieldByName('content')).LoadFrom....好象也不行请帮帮我!
读:
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;注意:一定要用此方法进行读写,因为实际上它是以二进制流的方式存入数据库!
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;