如何在DBGridEh上定位记录?
时间:2011-09-08
来源:互联网
请教大家
查询结果记录集显示在DbGridEh上,用户选中某条记录然后点修改按钮,弹出修改界面,修改数据保存后,自动返回到DbGridEh上,并自动刷新查询结果,
问题是,刷新查询结果够,如何定位到原来的选中记录上?如果是使用BookMark,具体怎么使用呢?还是有其他方法。
谢谢!
查询结果记录集显示在DbGridEh上,用户选中某条记录然后点修改按钮,弹出修改界面,修改数据保存后,自动返回到DbGridEh上,并自动刷新查询结果,
问题是,刷新查询结果够,如何定位到原来的选中记录上?如果是使用BookMark,具体怎么使用呢?还是有其他方法。
谢谢!
作者: seleron 发布时间: 2011-09-08
如果是单表,没必要刷新啊,直接数据集组件的EDit...Post就立即显示了
如果是联合表,通过update更新,就要刷新了,定位方法很多,adoquery的bookmark可以,还可记录一下那条记录的id,然后adoquery的locate定位
Delphi(Pascal) code
如果是联合表,通过update更新,就要刷新了,定位方法很多,adoquery的bookmark可以,还可记录一下那条记录的id,然后adoquery的locate定位
Delphi(Pascal) code
var bookmark:TBookmark; begin bookmark := ADOQuery1.GetBookmark; ...... ADOQuery1.GotoBookmark(bookmark); end;
作者: bdmh 发布时间: 2011-09-08
你可以试试这样:
1、保存你原来选中的记录的主键,例如自动增加的ID或是其他的唯一的键值
2、刷新之后,用与DBGridEh关联的AdoQuery的locate函数定位你之前选中的记录
例如
AdoQuery.Locate('ID', strMainId, []);
你也可以保留多个主要信息来定位你之前选中的信息,详细的Locate使用方法,看帮助就可以了
1、保存你原来选中的记录的主键,例如自动增加的ID或是其他的唯一的键值
2、刷新之后,用与DBGridEh关联的AdoQuery的locate函数定位你之前选中的记录
例如
AdoQuery.Locate('ID', strMainId, []);
你也可以保留多个主要信息来定位你之前选中的信息,详细的Locate使用方法,看帮助就可以了
作者: m617105 发布时间: 2011-09-08
引用 1 楼 bdmh 的回复:
如果是单表,没必要刷新啊,直接数据集组件的EDit...Post就立即显示了
如果是联合表,通过update更新,就要刷新了,定位方法很多,adoquery的bookmark可以,还可记录一下那条记录的id,然后adoquery的locate定位
Delphi(Pascal) code
var
bookmark:TBookmark;
begin
bookmark :……
如果是单表,没必要刷新啊,直接数据集组件的EDit...Post就立即显示了
如果是联合表,通过update更新,就要刷新了,定位方法很多,adoquery的bookmark可以,还可记录一下那条记录的id,然后adoquery的locate定位
Delphi(Pascal) code
var
bookmark:TBookmark;
begin
bookmark :……
单表的话,如果不刷新,原来的那个ADOQuery还是旧数据啊
DbGridEh显示的是ADOQuery1的DataSet
修改时用的是ADOQuery2
不刷新的话如何post呢?
作者: seleron 发布时间: 2011-09-08
引用 1 楼 bdmh 的回复:
如果是单表,没必要刷新啊,直接数据集组件的EDit...Post就立即显示了
如果是联合表,通过update更新,就要刷新了,定位方法很多,adoquery的bookmark可以,还可记录一下那条记录的id,然后adoquery的locate定位
Delphi(Pascal) code
var
bookmark:TBookmark;
begin
bookmark :……
如果是单表,没必要刷新啊,直接数据集组件的EDit...Post就立即显示了
如果是联合表,通过update更新,就要刷新了,定位方法很多,adoquery的bookmark可以,还可记录一下那条记录的id,然后adoquery的locate定位
Delphi(Pascal) code
var
bookmark:TBookmark;
begin
bookmark :……
同意楼上的观点。dbgrideh本身就有定位的功能,dbgrid的当前记录就是数据集中的当前记录,没有必要重新定位.如果修改的是当前数据集,没有必要刷新。
如果你是另开一个数据集,保存后,就需要requery并重新定位。
jlh:=adoquery1.recno;
adoquery1.requery;
adoquery1.recn:=jlh;
这个方案没有考虑多用户,如果是多用户就要用ID做为定位标志了。
作者: babydog01 发布时间: 2011-09-08
引用 4 楼 babydog01 的回复:
引用 1 楼 bdmh 的回复:
如果是单表,没必要刷新啊,直接数据集组件的EDit...Post就立即显示了
如果是联合表,通过update更新,就要刷新了,定位方法很多,adoquery的bookmark可以,还可记录一下那条记录的id,然后adoquery的locate定位
Delphi(Pascal) code
var
bookmark:TBookmark;
beg……
引用 1 楼 bdmh 的回复:
如果是单表,没必要刷新啊,直接数据集组件的EDit...Post就立即显示了
如果是联合表,通过update更新,就要刷新了,定位方法很多,adoquery的bookmark可以,还可记录一下那条记录的id,然后adoquery的locate定位
Delphi(Pascal) code
var
bookmark:TBookmark;
beg……
adoquery1.recno 是什么属性呢?如何声明呢
作者: seleron 发布时间: 2011-09-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28