DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hongsir2078
今日帖子: 15
在线用户: 19
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 beginer (初学者) ★☆☆☆☆ -
盒子活跃会员
2019/1/12 21:52:11
标题:
DBGridEH 怎样在修改记录后提示保存 浏览:331
加入我的收藏
楼主: 使用Adoquery连接datasouce连接DBGridEH,DBGridEH设置为允许edit,DataSource设置为autoedit,这样在DBGridEH中直接修改某个单元格的值,鼠标点到另外单元格或其他行,数据就自动更新到数据库中了。如果偶尔压到键盘,也会把不需要修改的数据修改掉,请问如何在数据修改后能弹出提示框,可以选择修改还是放弃?

试了很多办法都不行,请教如何在不修改当前设置模式下怎样解决。有偿付费也可以。
----------------------------------------------
新手,想得到您的帮助!
作者:
男 wwzjx123 (ww zjx) ▲▲▲▲▲ -
普通会员
2019/1/12 23:50:45
1楼: 在ADOQuery的beforepost事件内写,放弃时Abort
----------------------------------------------
-
作者:
男 beginer (初学者) ★☆☆☆☆ -
盒子活跃会员
2019/1/13 12:27:37
2楼: 试了,不行,报错的。报错好像是和DBGridEH有关,因为没有源码,也看不出什么原因,猜测是DBGridEH执行内容优先于ADOQuery的beforepost事件。
----------------------------------------------
新手,想得到您的帮助!
作者:
男 xlonger (xlonger) ▲▲▲▲▲ -
普通会员
2019/1/13 13:29:35
3楼: 换个有源码的 DBGridEh,另外具体报什么错误呢?
----------------------------------------------
我打的是酱油,而不是别的什么油。
我灌的是口水,而不是别的什么水。
我聊的折腾不是那个不折腾的折腾。
我说的阿娇不是那个邓玉娇的阿娇。
3个代表,6个为什么,9个肠胃炎。
D性强的领导干部都不喜欢热比娅。
我特别要讲的是,屁民网黄色论坛是我经常上网必选的 网站之一
作者:
男 beginer (初学者) ★☆☆☆☆ -
盒子活跃会员
2019/1/13 18:42:29
4楼: 刚试了一下:
procedure TDataModule1.ADOQueryBeforePost(DataSet: TDataSet);
begin
  case Application.MessageBox('是否保存修改?', '提示', MB_YESNO + MB_ICONQUESTION) of
    IDYES:
      begin

      end;
    IDNO:
      begin
          Abort;
      end;
  end;

end;
修改后弹出提示框,如果选否,编辑的单元格没反应,鼠标一点到其他格子就弹出提示框,放弃不了。如果鼠标点到DBGridEH外面,则弹出出错提示框:
EAbort:operation aborted.
----------------------------------------------
新手,想得到您的帮助!
作者:
男 beginer (初学者) ★☆☆☆☆ -
盒子活跃会员
2019/1/13 19:03:19
5楼: 补充:如果从DBGridEh入手,在OnColExit事件中可以撤销编辑,但是如果鼠标点其他行的时候,就捕捉不到了,系统照样保存了

如果在ADOQueryBeforePost中cancel,会出现
procedure TDataModule1.ADOQueryBeforePost(DataSet: TDataSet);
begin
case Application.MessageBox('是否保存修改?', '提示', MB_YESNO +
  MB_ICONQUESTION) of
  IDYES:
    begin

    end;
  IDNO:
    begin
      ADOQuery.Cancel
    end;
end;
end;

提示:Edatabaseerror:无法插入空行。行必须至少有一个列值集。
----------------------------------------------
新手,想得到您的帮助!
作者:
男 zhangl (二黑) ★☆☆☆☆ -
盒子活跃会员
2019/1/13 22:11:15
6楼: AdoQuery.LockType设置为ltBatchOptimistic,

增加一个保存按钮, 保存时:
  AdoQuery.UpdateBatch();
----------------------------------------------
报到
作者:
男 beginer (初学者) ★☆☆☆☆ -
盒子活跃会员
2019/1/14 0:10:30
7楼: 换种思路吧,怎样为DBGridEh添加一个onrowexit事件?
----------------------------------------------
新手,想得到您的帮助!
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2019/1/14 18:02:50
8楼: 6楼 才是通常的做法,不要依赖于组件来自动保存。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 偶的生活博客  偶的技术军事博客
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行39.0625毫秒 RSS