新手,请教问题!谢谢!

DTopNil 2003-08-28 10:31:46
通过单击 BitBtn2 按钮实现图片保存进数据库,
但是保存好以后,如果再次单击此按钮还会在数据库中添加新纪录,
保存同样的一张图片。

请问我怎样解决这个问题,不让同样的图片第二次保存进数据库中。

代码如下:

procedure TAddPicForm.BitBtn2Click(Sender: TObject);
begin

if (OpenPictureDialog1.FileName <>'') then
begin
DataModule5.ADOQuery1.Insert;
DataModule5.ADOQuery1.FieldByName('代表照片路径').AsString := OpenPictureDialog1.FileName;
DataModule5.ADOQuery1.FieldByName('代表照片').Assign(image1.Picture);
DataModule5.ADOQuery1.Post;
end
else
MessageDlg('请先选择照片!',mtError,[mbOK],0);

end;
...全文
19 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
AirPaper 2003-08-28
  • 打赏
  • 举报
回复
在插入前先查询一下数据库中各记录的'代表照片路径'字段是否有跟OpenPictureDialog1.FileName重复的,如没有再插入新记录。。。
things 2003-08-28
  • 打赏
  • 举报
回复
if (OpenPictureDialog1.FileName <>'') then
begin
if DataModule5.ADOQuery1.locate('法人代表照片路径',OpenPictureDialog1.FileName, []) then
begin
showmessage('照片已存在!');
exit;
end;
DataModule5.ADOQuery1.Insert;
........
DTopNil 2003-08-28
  • 打赏
  • 举报
回复
代码:

procedure TAddPicForm.BitBtn1Click(Sender: TObject);//打开图片按钮
begin
OpenPictureDialog1.Execute;
image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;

procedure TAddPicForm.BitBtn2Click(Sender: TObject);//保存图片按钮
begin

if (OpenPictureDialog1.FileName <>'') then
begin
DataModule5.ADOQuery1.Insert;
DataModule5.ADOQuery1.FieldByName('法人代表照片路径').AsString := OpenPictureDialog1.FileName;
DataModule5.ADOQuery1.FieldByName('法人代表照片').Assign(image1.Picture);
DataModule5.ADOQuery1.Post;
end
else
MessageDlg('请先选择照片!',mtError,[mbOK],0);

end;


请问怎么解决这个问题?

frogshero 2003-08-28
  • 打赏
  • 举报
回复
看看代表照片路径中是否已存在OpenPictureDialog1.FileName

2,497

社区成员

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

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