我又发现一个奇怪的问题,缓存更新中,记录已经applyupdates,提交了。这个记录怎么能 cancdlupdates, 回到修改前的样了,不过记录还在数 我又发现一个奇怪的问题,缓存更新中,记录已经applyupdates,提交了。这个记录怎么能 cancdlupdates, 回到修改前的样了,不过记录还在数据库表中。cancdlupdates 应该是 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不可能吧?既然已经applyupdates成功了,再cancdlupdates都是没用的 to 回复人: BoningSword(我爱的人名花有主,爱我的人惨不忍睹) 这个问题好了。 good 还有个问题缓存删除的问题。query2是缓存数据集,假如我添加十个空记录,当我提交记录applyupdates时,想把没有输入记录先删除,再applyupdates提交记录,怎么办?while not dmsl.query2.Eof do if (dmsl.query2['shul']='') thenbegindmsl.query2.delete;end; 以上程序是错误的。 1.你的代码是一死循环,不能这样做。应当是在循环中不断地调用locate方法查找shul=''的记录,找到就删除,找不到就跳出循环。2.应当在记录post时检查输入记录的合法性,不要在applyupdates时做。 一句话就可以了。while dsgnintf.pas.locate('shul','',[]) do delete;然后applyupdates。这是不是你想要的? to 回复人: TWWH() ( ) 信誉: 我是用query控件。locate好象针对table 我搞的是销售主,从表录入,从表当然是一次添加多个空记录,我采用是缓存处理。主从表录好后一起提交。当我提交记录时,想把没有输入记录先删除,再提交记录。路漫漫其路远也。最近我没有其他事情。拾起以前程序继续写起来。不知何时修成正果。我正在努力中其中,在这当中我要感谢各位无私的教诲!。分当然不是主要的,认识这么多朋友真高兴!请大家继续关注我的贴子。我想我现在真离不开大家。CSDN真是个大家庭。在这个销售主、从表录入表单中。主从表我是分开提交的 dmsl.query1.database.applyupdates([dmsl.Query1]); dmsl.Query2.Database.ApplyUpdates([dmsl.query2]);增加,修改,删除基本能行。就是以上一次删除多条空记录有点问题。还有的问题,我想把整个过程封装在事务中,主、从表添加一起提交,出错就回滚。怎样把整个过程封装在事务中,dmsl.database1.starttransaction; try //dmsl.Query1.Post; //dmsl.Query2.Post; dmsl.query1.database.applyupdates([dmsl.Query1]); dmsl.Query2.Database.ApplyUpdates([dmsl.query2]); dmsl.Database1.Commit; //出错 except dmsl.database1.Rollback; Messagedlg('操作失败!',mtwarning,[mbOK],0); end; 这个事务怎么不执行。 to回复人: TWWH() ( ) 信誉:100 while dmsl.query2.locate('shul','',[])thenbegindmsl.query2.delete;end; shul为数值类出错。请教各位。 两个程序之间的传送与接收 为什么我的数据写不进数据库?在线等待! 求一主从表操作的例子源码, 顺祝D兄新年快乐~~~~~~~~~ Mdi,急,急,急!!!! 100分下班揭帖!请问如何实现写dll文件? 怎么输入不进去数据????? 数据传输的端口与数据接收??? 如何动态建立一个表,然后操作他? 几晚上都没搞定的怪问题??请看代码 dbgrid控件,在多行选择后,如何实现从每选中的行里读出某个字段的值,看里面代码;(急 怎样建立一个有纵列、横行的表?(用微软的Access)且在DBGird里显示出来. quiz about flat style ?
都是没用的
这个问题好了。 good 还有个问题缓存删除的问题。
query2是缓存数据集,假如我添加十个空记录,当我提交记录applyupdates时,想把没有输入记录先删除,再applyupdates提交记录,怎么办?
while not dmsl.query2.Eof do
if (dmsl.query2['shul']='') then
begin
dmsl.query2.delete;
end;
以上程序是错误的。
2.应当在记录post时检查输入记录的合法性,不要在applyupdates时做。
while dsgnintf.pas.locate('shul','',[]) do
delete;
然后applyupdates。
这是不是你想要的?
locate好象针对table
路漫漫其路远也。最近我没有其他事情。拾起以前程序继续写起来。不知何时修成正果。我正在努力中其中,在这当中我要感谢各位无私的教诲!。分当然不是主要的,认识这么多朋友真高兴!请大家继续关注我的贴子。我想我现在真离不开大家。CSDN真是个大家庭。在这个销售主、从表录入表单中。主从表我是分开提交的
dmsl.query1.database.applyupdates([dmsl.Query1]);
dmsl.Query2.Database.ApplyUpdates([dmsl.query2]);
增加,修改,删除基本能行。就是以上一次删除多条空记录有点问题。还有的问题,我想把整个过程封装在事务中,主、从表添加一起提交,出错就回滚。
怎样把整个过程封装在事务中,
dmsl.database1.starttransaction;
try
//dmsl.Query1.Post;
//dmsl.Query2.Post;
dmsl.query1.database.applyupdates([dmsl.Query1]);
dmsl.Query2.Database.ApplyUpdates([dmsl.query2]);
dmsl.Database1.Commit; //出错
except
dmsl.database1.Rollback; Messagedlg('操作失败!',mtwarning,[mbOK],0);
end; 这个事务怎么不执行。
to回复人: TWWH() ( ) 信誉:100
while dmsl.query2.locate('shul','',[])then
begin
dmsl.query2.delete;
end;
shul为数值类出错。请教各位。