用缓存更新,表必须要有索引吗?(20分)

  • 主题发起人 主题发起人 mmww
  • 开始时间 开始时间
M

mmww

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用Ttable的cachedupdates为true,提交applyupdates,和commitupdates时总是显示
表是没索引的,难道用缓存更新的表必须要有索引吗?
 
首先有一点可以肯定:
cachedupdate=true与表有无索引没有关系。
我用DB2数据库,表没有索引,一样可以通过query更新。
不知你用什么数据库,关键在于报的错误信息是否为数据库所报,
如果是,应该到数据库帮助文档中按照错误代码查找相关信息,
与delphi无关。
如果不是,再查delphi中query属性设置。
 
我用的是本地paradox表,代码最简化为:
with table1 do
begin
cachedupdates:=true;
open;
append;
fieldbyname('a').asstring:='first record';
post;
append;
fieldbyname('a').assring:='second record';
post;
applyupdates;
commitupdates;
end;
显示错误信息:Table is not indexed.
为何这样?
 
table.afterpost
begin
ttable(dataset).applyudates
end
 
"table.afterpost"
这是什么?表有这个属性或方法吗?
 
"table.afterpost"是table的afterpost事件
 
to 问题雷同,
那样和立即更新没什么两样啊
我想追加几条记录后,一起更新,以加快写盘速度,减少程序运行时间
 
对了,你的表中有主键值吗,用tquery试试啊。或者干脆用ADO啊。
 
后退
顶部