关于Query控件的问题。(easy)(100分)

  • 主题发起人 主题发起人 a_lei33_1
  • 开始时间 开始时间
A

a_lei33_1

Unregistered / Unconfirmed
GUEST, unregistred user!
使用Query控件,搭配DBGrid,DBNavagtion控件,

Query1.sql.add (Select ......);
Query1.open 后,DBNavagtion的Insert,Post,Edit等按钮都 Disable.

Query换成Table,DBNavagtion 的 Insert等按钮可用。

有办法解决吗?需要改Query的那些属性?

 
CacheUpdates = True

然后在Query的UpdateRecord事件中加上任意一条语句,如:
procedure TForm1.Query1UpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
//
end;

这样就可以在运行时,进行Insert,Delete等操作,不过并不会真正修改数据库。

如果想真正修改数据库,还需用到UpdateSQL控件,然后UpdateRecord事件中进行
相应处理。
 
对于单表的非统计查询,可以把 query的 RequestLive 设成 true,则该query即
可修改,若是多表查询,则用到updatesql
 

Query的 RequestLive 设成 true,就可以了。
相当于Table 的OnlyRead
而Query 的 RequestLive 默认为false

 
Query的 RequestLive 必须设成 True

对于C/S方式:建议使用缓存更新
Query的 CacheUpdates = True
Query的 UpdateSql 连接一个TUpdatSql控件


 
后退
顶部