GoodsCode GoodsName Space CostPrice Retailprice
001 AAA 1*10G 10.5 12.8
002 BBB ss 120 160
003 CCC ww 28.50 29.25 GoodsCode是主键
Delphi(Pascal) code
这时侯我 先添加 001 的记录, 然后在删除 001 的记录, 再执行下面的代码 , 居然提示插入重复键,
我跟中 SQL 语句发现先 是先执行"插入"再执行"删除"的
try
ADOConnection1.BeginTrans ;
ADOQuery1.ApplyUpdates ;
ADOQuery1.CommitUpdates ;
ADOConnection1.CommitTrans ;
except
ADOConnection1.RollbackTrans ;
end;先删除 后添加 就没有问题 ,, 怪问题!!!!
001 AAA 1*10G 10.5 12.8
002 BBB ss 120 160
003 CCC ww 28.50 29.25 GoodsCode是主键
Delphi(Pascal) code
这时侯我 先添加 001 的记录, 然后在删除 001 的记录, 再执行下面的代码 , 居然提示插入重复键,
我跟中 SQL 语句发现先 是先执行"插入"再执行"删除"的
try
ADOConnection1.BeginTrans ;
ADOQuery1.ApplyUpdates ;
ADOQuery1.CommitUpdates ;
ADOConnection1.CommitTrans ;
except
ADOConnection1.RollbackTrans ;
end;先删除 后添加 就没有问题 ,, 怪问题!!!!
问题是我要批量的更新,不是添加一条001用ApplyUpdates , 再删除 001 用ApplyUpdates ;如果把上面的 分这两步做不会有问题啊,,,, 我是想添加了,接着再删除 一起提交(ApplyUpdates) 不行啊???PB 一起提交不会有这样的问题啊,,,难道是Delphi的BUG
你按順序來想下。 數據庫裏有一條001,再插入肯定是重復了。 如果是數據庫有一個001,刪除一個001,再插入一個001,肯定不會重復啊。
你確定在DATAWINDOWS下不會出現這個問題?? DATAWINDOWS也是一個SQL批量操作的。