Dear Experts
I am using SQLSERVER with VFP.
I use Begin Transaction, but I doubt there is bug in my begin transaction---end transaction
I found some time the last row of last vouchers missed.
Please review my codes, How to make codes better to save data permanently on disk
begin transaction
sqlsetprop(m.con, "Transactions",2)
lok=.t.
cmd="delete from crpr_sum where date=?Thisform.text3.Value and vou_no=?Thisform.text1.Value"
if sqlexec(con,cmd)<0
aerror(laerror)
messagebox(laerror[1,2])
lok=.f.
return.f.
endif
cmd="select MAX(vou_no)as max_sno from crpr_sum where date=?thisform.text3.Value"
if sqlexec(con,cmd,'table1')<0
aerror(laerror)
messagebox(laerror[1,2])
return.f.
else
select table1
thisform.text1.value=nvl(max_sno,0)+1
endif
text TO m.cmd NOSHOW TEXTMERGE
INSERT INTO crpr_sum(
vou_no,date,vou_type,acc_code,acc_name,sales_r,vehicle_no,bilty_no,tpt,
driver,cr_amount,dr_amount)
values(
?Thisform.text1.Value,?thisform.text3.value,'PR',?thisform.text10.value,
?thisform.text11.value,?thisform.text13.value,?thisform.text14.value,
?thisform.text15.value,?thisform.text16.value,?thisform.text2.value,
?thisform.text22.value,0)
ENDTEXT
if sqlexec(m.con,cmd)<0
aerror(laerror)
messagebox(laerror[1,2])
lok=.f.
endif
if lok=.f.
sqlrollback(m.con)
rollback
else
if sqlcommit(m.con)<0
aerror(laerror)
messagebox(laerror[1,2])
rollback
else
end transaction
endif
sqlsetprop( m.con,"Transactions",1)
endif