关于DBGrid中行更新的问题

Ilzyfore 2004-04-03 12:15:24
对DBGrid中的一行编辑完后,DBGrid会将这行的更新自动写入到数据库中去,这时我还想定义一些自己的操作,该怎么办?还有,行更新结束时DBGrid会不会产生事件?是哪个事件?
...全文
27 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
楚人无衣 2004-04-03
  • 打赏
  • 举报
回复
1.设其DataSet如ADOQuery1之LockType为ltBatchOptimistic可实现批量更新,操作完后用ADOQuery1.UpdateBatch()才会写入数据库;
2.行更新结束时的事件啊,不好控制,试试其DataSet的AfterPost事件
lx47 2004-04-03
  • 打赏
  • 举报
回复
程序对数据库的操作都是通过数据集控件实现的,DBGRID只是用来编辑数据的,所以你要多看看数据集控件的方法,属性,事件。。。很强的。
lx47 2004-04-03
  • 打赏
  • 举报
回复
你说的事件要到DBGRID相联系的DATASET中去找,如:ADOTABLE, ADOQUERY那些。
Graig 2004-04-03
  • 打赏
  • 举报
回复
你试一下在 Query 里 AfterScroll 事件去处理。 (当行改变时就会触发这件事件)
Ilzyfore 2004-04-03
  • 打赏
  • 举报
回复
谢谢各位的建议
可能是我没说清楚,大家对我的问题有些误解
我是想在对任意一行编辑完后执行一些自定义的操作,比如一行编辑完后用户将行焦点定位到另一行时,DBGrid就会更新DataSet,这时我想进行一些另外的操作。
急呀!!!各位大虾帮帮忙啊

huazaijiajia 2004-04-03
  • 打赏
  • 举报
回复
这种事件可以在与 DBGrid 相连的 Query 里面做,试试 AfterPost
net_jun 2004-04-03
  • 打赏
  • 举报
回复
不要用控件绑定,用动态绑定可以解决你的问题。
Graig 2004-04-03
  • 打赏
  • 举报
回复
用BDE访问的话,使用 Query,ClientDataSet,DataSetProvider 等连接
数据库<--Query1.DataBase<--DataSetProvider.DataSet<--ClientDataSet.Provider<--DataSource<--DBGrid,
样的话只要没有执行ClientDataSet.ApplyUpdate(0) 数据就不会存到数据库中.
ClientDataSet.CancelUpdate,则返回到修改前的状态.
gb2008 2004-04-03
  • 打赏
  • 举报
回复
如果是TQuery就修改属性CacheUpdate = True
zhe

2,495

社区成员

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

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