缓存更新方法可以用于本地.DB表吗?(50分)

  • 主题发起人 主题发起人 kmcxy
  • 开始时间 开始时间
K

kmcxy

Unregistered / Unconfirmed
GUEST, unregistred user!
对本地.DB表用
DataSet.ApplyUpdates;
DataSet.CommitUpdates;
无错误发生,但更新结果不能写入数据表。去掉后一句错误发生,但更新结果能写入数据表。
缓存更新方法可以用于本地.DB表吗?要一个肯定的回答。
 
可以,但是有必要吗?
 
当然有必要,对本地和服务器就一样了。说出做法就给你分。
 
当然可以,这是由Bde支持的
DataSet.ApplyUpdates;
DataSet.CommitUpdates
不能这样使用
因为
DataSet.ApplyUpdates;后,数据已提交,缓存为空
所以你再使用DataSet.CommitUpdates当然出错
只使用一个即可

 
用法是没错,但是很奇怪。
你说,去掉后一句错误发生,是什么错误?哪一句?
把源代码贴出来吧。再结合源代码说说你的情况。
 
缓存更新主要是减少网络流量,你用db表作为网络数据库?
看看例子怎样使用
rocedure TForm1.ApplyButtonClick(Sender: TObject);
begin
with CustomerQuery do
begin
Database1.StartTransaction;
try
ApplyUpdates; {try to write the updates to the database};
Database1.Commit; {on success, commit the changes};
except
Database1.Rollback; {on failure, undo the changes};
raise; {raise the exception to prevent a call to CommitUpdates!}
end;
CommitUpdates; {on success, clear the cache}
end;
end;
另外你的问题中没有提到具体是什么错误
 
kmcxy:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
问题已经解决,可以结束帖子。请注意以下的话,这是服务器数据库
与本地不同的原因。Jobs所言并不是问题,但对各位的意见都表示感谢。

Key Fields :The Key Fields list box is used to specify the columns
to use as keys during the update. Generally the columns you specify
here should correspond to an existing index, especially for local Paradox
and dBASE tables, but having an index is not a requirement.
 
多人接受答案了。
 
后退
顶部