delphi使用dbgrideh修改数据的问题

zhaozheng821018 2009-02-09 12:52:28
我在界面上布置了一个dbgrideh和adoquery,查询数据正常能使用,同时我把grideh设置成可以编辑的,把adoquery的cursortype设置成ctDynamic,locktype设置成ltBatchOptimistic,然后在界面上加一个按钮,onclick代码:
try
if datamodule1.stock_mtrstockkwquery.State in [dsedit,dsinsert] then
begin
datamodule1.stock_mtrstockkwquery.Post;
datamodule1.stock_mtrstockkwquery.UpdateBatch();
end;
except
raise;
end;

但是每次修改完数据,要点击按钮保存数据时,datamodule1.stock_mtrstockkwquery的state是dsbrose,为什么啊
怎么解决???????
...全文
280 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaozheng821018 2009-02-09
  • 打赏
  • 举报
回复
写错了,更正一下,点击按钮时的state状态是dsbrowse
工程菜鸟 2009-02-09
  • 打赏
  • 举报
回复
UP
starluck 2009-02-09
  • 打赏
  • 举报
回复


try
if datamodule1.stock_mtrstockkwquery.State in [dsedit,dsinsert] then
begin
datamodule1.stock_mtrstockkwquery.Post;
end;
datamodule1.stock_mtrstockkwquery.UpdateBatch();
except
raise;
end;



ADO 下只能判斷當前記錄。應該是已經提交到內存了。BATCH放到外面去。
bdmh 2009-02-09
  • 打赏
  • 举报
回复
Post只能在数据集处在可编辑状态时才能使用

UpdateBatch,批量更新,不用判断状态
不得闲 2009-02-09
  • 打赏
  • 举报
回复
跟踪一下源代码,看看那个state是如何更改的。
zhaozheng821018 2009-02-09
  • 打赏
  • 举报
回复
是不是那个datamodule1.stock_mtrstockkwquery.Post只能对应于datamodule1.stock_mtrstockkwquery.edit用啊,我在也曾经用原来的代码使用成功过的,但是突然就不行了,提示不是dsedit和dsinsert

2,497

社区成员

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

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