access下很使用dataset控件的refresh方法吗?(100分)

  • 主题发起人 主题发起人 fretree
  • 开始时间 开始时间
F

fretree

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是access数据库,凡是我所连的table/query/DecisionCubeQuery控件,我应用
其refresh刷新数据时,均出现 table(query) does not suppor this operation
because it not uniquely indexed 的错误,我修改数据表的索引只有一个,
也会出现这种错误,请问在access 下无法使用refresh方法吗? 如果是,
这如何更新数据呢?
 
zhanggeye兄,我使用的BDE,而不是ADO.不好意思没有说清楚。
 
我也遇到了好象是ACCESS不支持,
我改用:Adoquery.close;
adoquery.open;
效果相同
 
使用关闭/打开dataset的方法,导致与数据集相连的用户界面显示不连续而产生震荡现象。
所以这种方法并不能达到要求。比如在数据库变化而要求实时显示的情况。
 
Table1.DisableControls;
Table1.Close;
Table1.Open;
Table1.EnableControls ;
 
建立一个唯一索引不就可以了吗?
如果Access不支持索引就没办法了.

同意zhanggeye的两种方法.
 
只要使用TQuery组件,随便使用什么数据库只要调用Refrush,就会出现上面描述的问题,
按照提示的意思应该是没有定义索引,但是表中是有索引的。
如果换成TTable组件或TADOQuery组件就不会存在这样的问题了,不知道这个是TQuery的Bug
还是要进行其他的设置?
 
我试用了disablecontrol/enablecontrol的方法,基本可以解决界面震荡的问题
但是关于refresh方法的使用,还请各路大虾继续指教
 
使用下面的方法也应该可以的:

procedure TQuery.MyRefresh;
var
BookMark: TBookMark
begin
BookMark:=GetBookMark;
ReQuery;
GotoBookMark(BookMark);
FreeBookMark(BookMark);
end;
 
多人接受答案了。
 
后退
顶部