Delphi中使用DBGridEh控件作为显示页面,若修改了某一条数据如何只刷新这一条数据?

_Lorin_ 2017-04-01 05:08:40
就是要求: 修改一条数据后不需要又重新加载下select 刷新全部数据,某条对应刷新就行了。
若不能实现,有其他的方法可以实现吗,delphi 中。
...全文
1812 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadowpj 2017-11-03
  • 打赏
  • 举报
回复
你想要实现什么功能?多人修改统一数据源然后自己刷新自己修改的?加入一控制字段操作员或网点号做为条件去select 。
jinhx 2017-11-01
  • 打赏
  • 举报
回复
一个问题搞了这么长时间,这个控件设置好数据源后默认就是修改一行移动光标后自动提交这行,也就是,不用管它,已经实现了
victor_yang 2017-11-01
  • 打赏
  • 举报
回复
单机还是网络版的?如果是单机的,只要修改当前记录的数据就好,如果是网络的,你要提交到数据库,不然别人看不到最新的数据。
日月路明 2017-11-01
  • 打赏
  • 举报
回复
引用 2 楼 lyhoo163 的回复:
此问题,要区别对待: 1、数据集控件直接连接本地数据库文件。只要DBGrid录入或修改后,只要焦点变化后,之前的数据全部保存到数据库文件中了。 此类数据刷新操作,无意义了。因为,数据已经保存,刷新操作前后是一致的。 2、对于三层,数据集控件,不是直接连接,而是通过中间层(控件)连接数据库文件,修改或数据保存在内在表中。此时,需要保存或更新数据操作,数据才能真正地保存到数据库文件中。 此类刷新数据时,当你之前未保存操作,之前的录入或修改的数据会丢失的。
coderee 2017-08-21
  • 打赏
  • 举报
回复
用refresh或requery。
英年渐肥 2017-04-14
  • 打赏
  • 举报
回复
首先是否要提交保存,如果成功本地无需刷新,否则提示问题原因,如果不保存只是post,也无需刷新 啊
lyhoo163 2017-04-01
  • 打赏
  • 举报
回复
此问题,要区别对待: 1、数据集控件直接连接本地数据库文件。只要DBGrid录入或修改后,只要焦点变化后,之前的数据全部保存到数据库文件中了。 此类数据刷新操作,无意义了。因为,数据已经保存,刷新操作前后是一致的。 2、对于三层,数据集控件,不是直接连接,而是通过中间层(控件)连接数据库文件,修改或数据保存在内在表中。此时,需要保存或更新数据操作,数据才能真正地保存到数据库文件中。 此类刷新数据时,当你之前未保存操作,之前的录入或修改的数据会丢失的。
santiaodahan 2017-04-01
  • 打赏
  • 举报
回复
数据已经显示肯定在数据集是打开的,直接更新它就能反馈到DBGrid里,没必要重新Select。 查询出结果后这样修改数据:

if not ADOQuery1.IsEmpty then
begin
     ADOQuery1.RecNo:=5;   //定位
     ADOQuery1.Edit;
     ADOQuery1.FieldByName('fd3').AsString:='value';  //写入值
     ADOQuery1.Post;       //提交
end;