怎样读取数据库字段类型为'image'的值.(20分)

  • 主题发起人 主题发起人 leader47
  • 开始时间 开始时间
L

leader47

Unregistered / Unconfirmed
GUEST, unregistred user!
储存时是把 word 文档保存到数据库,现在要取出来,不知道怎样取.
保存时的语句:adoquery1.FieldByName('reports').Assign(olecontainer1.ObjectVerbs);
请问取出来的语句怎样写?
 
用流字段读出来
 
可以告诉我怎样用流字段读吗?
而且要显示在控件上.不知道用哪个控件.
 
读出来容易 。可以使用读image一样的方式。
procedure disppicture;
var MemStrm:TMemoryStream;
begin
with datam.DataM1,input_Form do
begin
MemStrm:=TMemoryStream.Create;
TBlobField(Query2.fieldbyname('PHOTO')).SaveToStream(MemStrm);
MemStrm.Position:=0;
// Image1.Picture.Graphic.LoadFromStream(MemStrm);//这里你可以保存到文件,或者你使用可以读入word文档的控件。如果是rtf格式,你可以使用这样的代码。
RichEdit1.Lines.LoadFromStream(MemSTrm);
MemStrm.free;
end;
end;
 
to zywcd:
试过了你的代码,但在 RichEdit1 中只显示以下内容:
编辑(&E)
打开(&O)

请问这是怎样解决?
我用过其他的几种方法也出现那样的内容.
 
如果是纯粹word格式,使用RichEdit是不能打开的。
 
那么 用什么控件可以打开 word 格式的数据.?
请告诉我..........
 
那你就使用ole方式吧,启动word来打开word文档.
 
我的意思是:
写进数据库时是 word 文档,以下是写数据库的代码:
olecontainer1.createlinktofile('d:/aa.doc',true);
adoquery1.FieldByName('reports').Assign(olecontainer1.ObjectVerbs);
请问:
读取数据库字段类型为'image',用什么控件显示?

Thank you !
 
如果字段类型为image,应该这样读取:
Image1.Picture.Bitmap.Assign(TBLOBField(Table1.Fields[1]))
 
那你使用这样的代码读出来试试看,
var MemStrm:TMemoryStream;
begin
MemStrm:=TMemoryStream.Create;
TBlobField(Query2.fieldbyname('reports')).SaveToStream(MemStrm);
MemStrm.Position:=0;
olecontainer1.LoadFromStream(MemoStrm);
MemStrm.free;
end;
 
to zywcd:
运行错误: Invalid stream format.

to justmejwt:
运行错误: Bitmap image is not valid.
 
后退
顶部