ADOQUERY缓存更新如何设置?

sunseave 2008-04-21 02:40:53
我在ADOQUERY中代码如下:
select cast(0 as bit) as selected,* from ITEM
我虚拟一个selected字段,并在ADOQUERY的LOCKTYPE中设置成ITBATCHOPTIMISTIC属性
我在DBGRID中需要在selected上打勾表示选择了哪几列,但并不保存

现在碰到DBGRID中selected打勾打不上去,DBGRID的状态为不可编辑,请问还需要在哪里设置?
...全文
128 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
sunseave 2008-04-21
  • 打赏
  • 举报
回复
我是DBGRIDEH
kaikai_kk 2008-04-21
  • 打赏
  • 举报
回复
DBGRID是感知控件,虚拟的列应该是不能操作的
skylkj 2008-04-21
  • 打赏
  • 举报
回复
我以前写的一个例子,要clientdataset,datasetprovider配合adoquery使用

sqltext:='SELECT 0 as nfcp_check ... from ...';

downloadfrm_query.SQL.Text:=sqltext;
downloadfrm_query.Open;
downloadfrm_query.FieldByName('nfcp_check').ReadOnly:=false;

dfrm_clientdataset.Open;
dfrm_clientdataset.FieldByName('nfcp_check').ReadOnly:=false;
sunseave 2008-04-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 blazingfire 的回复:]
ADOQuery1.CursorLocation := clUseClient;//只有客户端游标才能批量更新
ADOQuery1.LockType := ltBatchOptimistic;//设置为批量更新模式
.......
根据这个设置还是不能进行编辑啊?
sunseave 2008-04-21
  • 打赏
  • 举报
回复
是啊,我是不需要修改,我只是在需要的数据上面打勾,ADOQUERY循环判断一下而已
blazingfire 2008-04-21
  • 打赏
  • 举报
回复
不行,你的那个数据列是虚拟出来的,不能修改的
skylkj 2008-04-21
  • 打赏
  • 举报
回复
虚字段保存要用clientdataset
blazingfire 2008-04-21
  • 打赏
  • 举报
回复
ADOQuery1.CursorLocation := clUseClient;//只有客户端游标才能批量更新
ADOQuery1.LockType := ltBatchOptimistic;//设置为批量更新模式
.......
ADOQuery1.UpdateBatch();//操作完成后,在更新到数据库
zhu_gx 2008-04-21
  • 打赏
  • 举报
回复

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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