oracle8存取图像方法。(100分)

  • 主题发起人 主题发起人 扶程星云
  • 开始时间 开始时间

扶程星云

Unregistered / Unconfirmed
GUEST, unregistred user!
请给出详细方法,我用过dbimage,提示出错。
 
我试了没有错误,读取用的也是dbimage
存储用的是
procedure TForm1.Button1Click(Sender: TObject);
var
myfilestream:tfilestream;
myblob:tblobfield;
picturepath:string;
begin
adoquery1.Append ;
picturepath:='d:/skin3.bmp';
adoquery1.Fields[0].AsString :='1';
adoquery1.Fields[1].AsString :='1';
myfilestream:=tfilestream.Create(picturepath,fmopenread);
myblob:=tblobfield(adoquery1.FieldByName('image'));
myblob.LoadFromStream(myfilestream);
myfilestream.Free;
adoquery1.Post;

end;
 
by ado;
存入:
sql.add('insert into pictable(id,picfiled) values(:id,:pic)');
parameters[0].value:=sid;
parameters[1].loadFromFile(opendialog1.filename,ftbolb);
execsql;
读出:
sfilename:='d:/'+fieldbyname('id').asstring+'.bmp';
(fieldbyname('picfield') as TbolbField).savetofile(sfilename);
用image显示
Image.Picture.LoadFromFile(sfilename);
 
我用的是odbc,不是ado.
 
在TDatebase中把BLOB SIZE和BLOBS TO CACHE 改大点
 
怎么会事,结束不了!
 
不知道_0909,:
你这样写方法上对的,如果你的程序都是这种方式写的话会对ORACLE数据库性能造成不好的影响。你应该学习一下雪中漫步,的写法。
 
不知道_0909的说法也不是没有道理的,我用oracle开发已经2年了,前一段时间遇到过这个问题:
就是存取扫描图象时,如果不把BLOBS TO CACHE 改大点,图象不能完全存入数据库,读取时就会报错。也许你现在遇到的不是这个问题
上面的方法都还不能解决吗?用Image会好一点,可以支持多中图形格式
 
都没有解决,我换了类型。分送给大家了。
 
后退
顶部