DBGridEh怎样使用CheckBox而不修改保存数据

TryToday 2009-03-11 05:36:30
目的是不希望把用户的选择保存到数据库中,只是临时使用。

搜索了许多,大致方法是:
1、Query增加自动计算字段,bool类型。
2、DBGird增加选择列,设置checkBoxes属性,使用上面的自动计算字段。
3、DBGrid的CellClick事件中,写代码(bcb例子)类似:
if(Column->FieldName == "选择") {
if(QueryBrow->State != dsEdit) QueryBrow->Edit();
QueryBrowField->Value = !QueryBrowField->Value; //或者下面
Column->Field->AsBoolean = !Column->Field->AsBoolean;
}

据说就可以了,但是执行的时候Query不允许进入编辑状态。把Query的RequestLive属性=true,运行就提示 table is readonly.
有人说用table不用Query可以,但是我那个Query是继承的有众多联系,不可能用其他的,只有table能用应用范围也太小了。
还有人说ADOQuery可以,但是如果是多表查询结果也肯定不行。

大家怎么解决的?
...全文
347 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhuo 2009-03-24
  • 打赏
  • 举报
回复
BDE的是吧,

将TQuery.CachedUpdates := True;
RequestLive := False;


在SQL里增加多一个虚的字段
select 0 as Selected from table
kitcause 2009-03-24
  • 打赏
  • 举报
回复
用memtable解决
kye_jufei 2009-03-20
  • 打赏
  • 举报
回复
BDE 下應該是 cachedUpdate 設為 TRUE

ADO 下 locktype 設為 ltBatchOptimistic
starluck 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 TryToday 的帖子:]
目的是不希望把用户的选择保存到数据库中,只是临时使用。

搜索了许多,大致方法是:
1、Query增加自动计算字段,bool类型。
2、DBGird增加选择列,设置checkBoxes属性,使用上面的自动计算字段。
3、DBGrid的CellClick事件中,写代码(bcb例子)类似:
if(Column->FieldName == "选择") {
if(QueryBrow->State != dsEdit) QueryBrow->Edit();
QueryBrowField->Value = !QueryBrowField->Valu…
[/Quote]

把Query的RequestLive属性=true,运行就提示 table is readonly.


你應該是在BDE下啊。


不管是在BDE或ADO下,可以做一個偽提交,把緩存更新打開來臨時使用。

BDE 下應該是 cachedUpdate 設為 TRUE

ADO 下 locktype 設為 ltBatchOptimistic
ffossil 2009-03-19
  • 打赏
  • 举报
回复
用clientdataset,

query+datasetprovider+clientdataset

数据不回写即可


dglife81 2009-03-14
  • 打赏
  • 举报
回复
操作 DBGird.dataset:
添加选择的字段。
mandarin 2009-03-11
  • 打赏
  • 举报
回复
DBGird增加选择列,设置checkBoxes属性,使用上面的自动计算字段。
这个不行吗,我记得之前我是这样子的,不过我加了memtabeh和datasetdriver

2,497

社区成员

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

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