求救,读取图像(100分)

  • 主题发起人 主题发起人 scjinsui
  • 开始时间 开始时间
S

scjinsui

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一数据库,其一字段类型为varbinary,在其他程序中往这个数据库中录入数据,
该字段存储的是Jpg图像,我现在要读取该字段,并显示在Timage中,请问如何实现?
 
用blobStream.
关于这个问题有很多旧帖,搜索一下!
 
blobstream用来操作Blob类型的字段,她能够操作varbinary吗?如果可以请举例!!
 
在数据库上使用Image二进制字段保存,使用Stream流的方式。

创建文件流:
Word_FileStream:=TFileStream.Create(Target_Name,fmOpenWrite or fmCreate);
Word_FileStream.Position:=0;

保存到数据库的Image字段:
TBlobField(AdoQuery1.FieldByName(Column_Name)).SaveToStream(Word_FileStream);

从数据库读取文件到本地硬盘:
TBlobField(ADOQuery1.FieldByName(Column_Name)).loadfromStream(Word_FileStream);

释放文件流:
Word_FileStream.Free;
 
我不能修改数据库的字段类型(因为其他程序要用),该字段类型固定为Varbinary类型
当我把该字段强制为Tblobfield时((Fieldbyname('image') as Tblobfield.savetostream(m)),
出现错误提示“Invalid class typecast”
敬请各位高手执教!!!
 
Image1.Assign(字段名)不知道行不行,本人没试过。
以前使用Image 类型的字段是这么用的
 
no!!!
还有没有人在,怎不见高手的身影,哎?!!
 
可不可以试一下在SQL 查询语句里把varbinary 转换成 Image 类型
例如:select Cast(Icon as Image) as Icon from Technology
 
如果是在SQL SERVER中把varbinary字段类类型改为image类型 
存图片的时候用流的形式,
我在PB中这样写的,
存:updateblob 表名 set 图片字段=图片流 where?????????????
取:selectblob 图片字段into流类型的变量 from 表名 where ///////////

这里关键用的是updateblob,selectblob
 
读取image类型自然简单,但现在是必须要读varbinary类型的jpeg图像,然后显示在Timage中!!!
 
可不可以试一下在SQL 语句里把varbinary 转换成 Image 类型
例如:select Cast(Icon as Image) as Icon from Technology

这样行不行,你试过吗?
 
接受答案了.
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部