数据提交(50分)

  • 主题发起人 主题发起人 ayay99
  • 开始时间 开始时间
A

ayay99

Unregistered / Unconfirmed
GUEST, unregistred user!
我以前用本地数据库,每次添加了记录都是post
现在用sqlserver数据库代码如下请指正前面是dbgrid,table
with tablename do begin
database.starttransaction;
applyupdates;
database.commit;
commitupdates;
end;
1:我想在表格中同时修改很多记录后提交,应用什么方法?
2:我试了用post,但不行,为什么?




 
1)缓存更新
2)提交
 
不明白??
请详解!
 
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;
 
hsw is good
 
我的程序在ApplyUpdates时报错?不知为什么
 
报错为not in cached update mode
 
>>报错为not in cached update mode
QUERY的CAHCED MODE没有打开,你设置一下或就去掉
CommitUpdates
我从不打开,有兼容性问题…………(可能)
 
首先保证你的BDE中的SQLPASSTHRU MODE为SHARED NOAUTOCOMMIT。然后用下面的
代码块,局部用自己的替代。

yourdatabase.StartTransaction;
try
with YourQuery do
begin
sql.clear;
sql.add(your sql string1);
execSQL;
sql.clear;
sql.add(your sql string2);
execSQL;
.
.
.
end;
yourdatabase.commit;
except
on e:exception do
begin
yourdatabase.rollback;
showmessage('数据提交出现问题!数据回滚!');
end;
end;
 
将你的 TableName.CachedUpdate ;= True;
然后再进行数据库操作。
 
to lop:
我用了你的方法,可以提交,但在提交后数据不显示,只有下次进入时显示,我如何
让提交之后仍显示刚提交的数据。
 
如果是没有key的SQL表,刚加入的记录就不会正常显示,解决方法:
1、加key
2. 关掉,再打开
 
同意 Crab 的意见,一般数据库都要设置主键,
有主键后编辑应该正常了吧。
 
多人接受答案了。
 
后退
顶部