比如我现在有一个ORACLE的存储过程了,
procedure pro_test(v_id in varchar2,v_pic in blob) is
begin
insert into pic (id,pic) values(v_id,v_pic);
end;我要对这个存储过程进行插入图片,用DELPHI怎么写啊?请给出明确的代码,我已经郁闷很多天了。。如果是度取图片,又该怎么写代码呢?????
procedure pro_test(v_id in varchar2,v_pic in blob) is
begin
insert into pic (id,pic) values(v_id,v_pic);
end;我要对这个存储过程进行插入图片,用DELPHI怎么写啊?请给出明确的代码,我已经郁闷很多天了。。如果是度取图片,又该怎么写代码呢?????
解决方案 »
- 两个dbGrid数据同步
- delphi+oracle 批量插入数据问题
- Free与Hide+FreeOnRelease有不同吗?
- 在fastreport的設計器上看到一個memo左下角有個黃色的小點﹐是什么啊?
- 怎么不能换行?
- 简单问题,大家帮忙
- 读' 一个老程序员的心里话 ' 有感
- 有谁有MP3或MP3PRO的相关资料吗?给我一份。谢了!
- 如何使窗体在用户按下显示桌面之后不会隐藏(不是将它始终置前)谢谢各位
- 欢迎CSDN 18或18以下的程序员留下QQ号码 AND EMAIL 如果有兴趣加入幽灵联盟的话
- 用数据库字段做变量问题。帮忙!!!!
- adoQuery简单又奇怪的问题!高手来,小虾也来,你们应该也碰到过吧!!!
用BDE,有对图片大小的限止,用ADO,如果用microsoft ole db provider for oracle,插入图片有问题,用oracle provider for ole db,也最好将ADO升级到2.7以上
当然,还有问题,就是ADO的TADOStoredProc对oracle 8支持也不是很好
我建议用odac,又有人说它不稳定(我用下来很好)
如果你用ADO,可以这样试试:
1..将文件读入数据库
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text:='begin pro_test(:id,:pic); end';
ADOQuery1.Parameters[0].Value:=1;
ADOQuery1.Parameters[1].LoadFromFile('d:\temp\025.jpg',ftBlob);
ADOQuery1.ExecSQL;
end;2.将图片从数据库中取出,并显示在TImage上
procedure TForm1.Button2Click(Sender: TObject);
VAR
MS: TMemoryStream;
Jpg:TJpegImage;
begin
MS := TMemoryStream.Create;
Jpg:=TJpegImage.Create;ADOQuery1.Close;
ADOQuery1.SQL.Text:='select id,pic from pic where id=1';
ADOQuery1.Open;
Edit1.Text:=IntToStr(ADOQuery1.FieldValues['id']);
(ADOQuery1.FieldByname('pic') AS TBlobField).SaveToStream(ms);
MS.Position :=0;
jpg.LoadFromStream(ms);
Image1.Picture.Assign(jpg);
jpg.Free;
MS.Free;
end;