缓存式更新究竟怎使用的(30分)

  • 主题发起人 主题发起人 nter
  • 开始时间 开始时间
N

nter

Unregistered / Unconfirmed
GUEST, unregistred user!
缓存式更新究竟怎使用的,
这几句究竟放在哪里
mydatabase.starttransaction;
try
with texttable do
begin
applyupdates;
mydatabase.commit;
end;
except
mydatabase.rollback;
raise;
end;
testtable.commitupdates;

是放在query.sql.add('******')后面的吗?
还需不需要写这句: QUERY.SQL.EXECSQL ?

 
你用的是事务日志的方法,QUERY的所有方法应在事务中,出错时再回滚所有数据库
更新内容。
mydatabase.starttransaction; //数据库修改回滚点
try
try
with query1 do
begin
close;
sql.add('****'); //sql语句
execsql; //执行,若有异常,则转入except,rollback所有修改
mydatabase.commit;
end;
except
mydatabase.rollback;
end;
finally
end;
大概是这样,希望对你有帮助...
 
一般次序是这样的:
Query1.Insert; //Query1.Delete; Query.FieldByName('???').AsTYPE:=???;
Query1.Post;
Query1.ApplyUpdates;

你可以在做ApplyUpdates的时候进行Try检查
同你的程序一样。
 
放在更新应该发生的地方。如按扭的ONCLICK等。
不需要EXECSQL,更新的SQL语句放在UPDATESQL
的INSERT,DELETE及UPDATE中。在APPLYUPDATES
时会自动执行。当然,要设TQUERY的属性为相应
的UPDATESQL。
 
多人接受答案了。
 
后退
顶部