DBGrid组件老是重复显示记录是怎么一回事? (100分)

  • 主题发起人 主题发起人 billows
  • 开始时间 开始时间
B

billows

Unregistered / Unconfirmed
GUEST, unregistred user!
DBGrid组件和TTable 组件相连,该Table组件设成CachedUpdates=true.
每当用Table.Append命令增加一个记录以后,
再用Table.ApplyUpdates命令DBGrid组件会再显示一个相同的记录,
请问这是怎么一会事,怎样避免?(数据库本身并没有多增加记录)
谢谢!

 
用POST试试。
 
table.applyupdates;
后面再加上
table.commitupdates;
 
还是不行,我用Append增加一个记录,
ApplyUpdates和CommitUpdates 以后
在DBGrid最上面和最下面各出现一条相同的记录!
 
dataset.Refresh

TQuery 不支持refresh,就close 再open?
 
我觉得是数据表的索引问题,你用的是什么数据库系统?
可以对数据表建个PRIMARY KEY
 
没必要用CashedUpdate啊, Table会刷新的呀!
 
我也觉得先close然后再open就行了
 
试一试启动事务:
with Table do
begin
Database1.StartTransaction;
try
ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
raise;
end;
CommitUpdates;
end;
 
CachedUpdates:=false;
 
Reopen DataSet will work OK .
 
database.refresh;
 
设置主键
 
设置Table.CachedUpdatas:=false;
 
不要用TABLE了,用QUERY会好的。
 
多人接受答案了。
 
后退
顶部