I have
1)MainConnection
2)ReadTransaction isolation :ReadCommited
3)WriteTransaction isolation :Snapshot
Code: Select all
masterqry ='select * from master' , detailqry ='select * from detail'
autocommit:=false
chachedupdate:=true
localmasterdetail:=true
Transaction := ReadTransaction
UpdateTransaction:=WriteTransaction
Code: Select all
and storedProcedure
autocommit:=false
chachedupdate:=false
Transaction := ReadTransaction
UpdateTransaction:=WriteTransaction
on click button save
Code: Select all
do like this
masterqry.post;
detailqry.post;
try
UpdateTransaction.start
masterqry.commitupdates;
detailqry.commitupdates;
storedProcedure.parambyname('P_ID').value:=masterqryID.value
storedProcedure.execsql
storedProcedure.close;
UpdateTransaction.commit;
except
UpdateTransaction.rollback;
masterqry.cancelUpdates;
detailqry.cancelUpdates;
storedProcedure.close;
end
Code: Select all
stored procedure like this
ProcMasterTableUpdateBalance(ID)
begin
update master
set summa= (select sum(summ) from detail where masterid=:id)
where masterid=:id;
update detail a
set addamount = (select sum(summ)/0.1 from detail b where b.detailid=a.detailid and b.masterid=:id)
where a.masterid=:id;
delete from archivedetail where masterid=:id;
insert into archivedetail
select * from detail where masterid=:id;
end