midas中jpg图像的处理(100分)

J

jupiter

Unregistered / Unconfirmed
GUEST, unregistred user!
本人开发一个三层c/s应用程序,客户端使用ActiveForm,MIDAS连接构件
采用TMIDASConnection,现在遇到一个棘手的问题,数据库中一个表,表中有一
个域是存储JPG图像的.当应用服务器从数据库服务器检索出图像数据时,可以
用一个TDBJPEGIMAGE来显示,但从应用服务器端却无法送到客户端进行显示,
(应用服务器端):
table1
tablename:='jpgtable';//存储jpg格式的表
provider1
dataset:='table1';
(客户端)
clientdataset1
remoteserver:='midasconnection';
providername:='provider1';
当把clientdataset1.active:=true;时就显示出错信息如下:
"Invalid BLOB in record buffer".而clientdataset1无法打开,因此也
无法察看到jpg图像.
我知道使用的Tprovider尚不支持jpg格式图像的传送,因为我把表换成存
储bmp格式的表时可以传送,从客户端也能显示从数据库传来的bmp图像.
但由于我的图像文件很多,可能有1万左右,空间占用很大(一幅11k),大
家有何办法吗?能得到你的帮助,本人将不胜感激.
E-mail: wzjwzp@public.qz.fj.cn
 
你用的是blob字段? 那么bmp和jpg是一样的呀,blob里面放什么东西都可以别说
jpg了,关键是你的client端怎么处理的
你先试试看用c/s(不用三层构架)直接连接数据库,用TDBJPEGIMAGE显示看有没有
什么问题....
 
yifeng说的没错,BMP和JPEG对于Provider来说没有区别,关键还是你的客户端。
 
本人使用的数据库是现成的,使用的是oracle7.3,所以不知是否采用blob字段,
但从delphi中的explore打开该jpg表,双击blob字段,会显示"bitmap image is
valid",若是bmp表就会显示该图像.察看建表的sql语句是
create table jpgtable(
sz1personalno varchar2(15) not null,
jpgphoto long raw)
谢谢两位的回答,可能我说的不过清楚,很抱歉.
而且使用两层的是可以使用.
 
Try to Use TClientDataSet's FetchBlobs Method.
 
多人接受答案了。
 
顶部