在保存照片到数据库中产生问题,Please help

wt_sanlian 2003-11-15 09:57:50
数据库是Oracle 8.16,客户端用的是BDE中的Oracle驱动,连接到数据库
保存照片代码如下:

Query1.Close();
Query1.SQL.Clear();
Query1.SQL.Add('SELECT * FROM MyTable');
Query1.RequestLive := true;
Query1.Open;

Query1.Insert;
Query1.FieldByName('NAME').AsString := 'ddddd';
TBlobField(Query.FieldByName('PHOTO')).LoadFromFile('C:\temp,jpg');
Query1.Post;

程序运行Post 时报错: "Ora-22990: Lob 定位器无法扩展展事物处理"

怎么回事啊?
...全文
80 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wt_sanlian 2004-01-04
  • 打赏
  • 举报
回复
谢谢
liyaohuang 2003-11-16
  • 打赏
  • 举报
回复
你最 Query 的属性用cacheupdae
用database的事务来保存修改
然后在保存时:
try
database1.StartTransaction;
Query1.post;
Query1.ApplyUpdates;
database1.commit;
Except
end;

RamjetZhang 2003-11-16
  • 打赏
  • 举报
回复
insert image into db, ado style:

procedure TForm1.Button1Click(Sender: TObject);
var
imStream:TMemoryStream;
imPicture:TJPEGImage;
begin
if OpenPictureDialog1.Execute then
begin
image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
imStream := TMemoryStream.Create;
imPicture := TJpegImage.Create;
imPicture.Assign(image1.Picture.Graphic);
imPicture.SaveToStream(imStream);
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('insert into your_table values(:name, :image)');
AdoQuery1.Parameters.ParamByName('name').Value := Edit1.Text;
AdoQuery1.Parameters.ParamByName('image').LoadFromStream(imstream,ftBlob);
AdoQuery1.ExecSQL;
AdoQuery1.Close;
FreeAndNil(imPicture);
FreeAndNil(imStream);
end;
end;
wwyf 2003-11-16
  • 打赏
  • 举报
回复
我也为次烦恼
jiangjian0427 2003-11-16
  • 打赏
  • 举报
回复
用stream试试看
aiirii 2003-11-16
  • 打赏
  • 举报
回复
試試如下:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into Pic values(.....,:Pic,...)');
.................
ADOQuery1.Parameters.ParamByName('Pic').Assign(Image1.Picture.Bitmap);
.................
ADOQuery1.ExecSQL;
提取:
Image1.Picture.Bitmap.Assign(TBLOBField(ADOQuery1.Parameters.ParamByName('Pic')))

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧