transaction Mark point หายไป จะแก้อย่างไร

   
เขียนโปรแกรม Insert & Update Transaction บน
MS SQL ดังนี้

gn=sqlconnect('db_odbc')
=sqlexec(gn,'begin transaction')
=sqlexec(gn,'select @@trancount as trn_cnt','ctrn')
? ctrn.trn_cnt && Return 1
*---- Process update transaction
=sqlexec(gn,'Insert .........')
=sqlexec(gn,'Update ......')
...
...
...
*---- Check TransCount
=sqlexec(gn,'select @@trancount as trn_cnt','ctrn')
? ctrn.trn_cnt && Return 1

=sqlexec(gn,'commit')
=sqldisconnect(gn)

คำถาม
====
โปรแกรมข้าบนทำงานได้ปกติ แต่ถ้ามีคนใช้งานมากๆ
โปรแกรมจะ error ไม่สามารถ Commit ได้
จากการตรวจสอบพบว่าค่า Trancount มีค่าเป็น 0
(เหมือนกับไม่มีการ Begin Transaction) แสดงว่า transaction Mark point หายไป (ยืนยันได้ว่าคำสั่ง Begin transaction ได้ถูกสั่ง และทำงานผ่าน) จะแก้ไขอย่างไรครับ

ขอบคุณล่วงหน้าครับ
BO
19 พ.ค. 46 เวลา 14:20:01 น. --> 203.107.207.130
   
ขอเชิญร่วมตอบคำถามครับ
 
ผู้ตอบ :
รหัสผ่าน :
รูปภาพ :
คำตอบ :