01-02-2016, 08:08 AM
السلام عليكم ورحمة الله
اقوم بتصميم برنامج محاسبي وصلت الى شاشة الفواتير ومن المعروف ان لها headet و detail
استخدم مكونين adodatasrt واحد لبيانات الفاتورة مثل رقمها ورقم العميل والتاريخ الخ وجدول التفاصيل الذي هو المنتجات والكمية والسعر
المشكلة هي اني استخدم Transaction في حال قمت بعمل UpdateBatch للـ headet ثم اقوم بعمل UpdateBatch للـ detail ,ويفشل detail في الحفظ لسبب ما مثلاً
عند اصلاح الخطا في detail واعادة المحاولة UpdateBatch للـ headet لاتقوم بتخزين اي شي لقاعدة البيانت نهائياً يبدوا ان السبب انه تم عمل updatepatch بنجاح لكن فعلياً لم يتم التخزين في قاعدة البيانات
هل هناك حل لهذه المشكله
وشكراً
اقوم بتصميم برنامج محاسبي وصلت الى شاشة الفواتير ومن المعروف ان لها headet و detail
استخدم مكونين adodatasrt واحد لبيانات الفاتورة مثل رقمها ورقم العميل والتاريخ الخ وجدول التفاصيل الذي هو المنتجات والكمية والسعر
المشكلة هي اني استخدم Transaction في حال قمت بعمل UpdateBatch للـ headet ثم اقوم بعمل UpdateBatch للـ detail ,ويفشل detail في الحفظ لسبب ما مثلاً
عند اصلاح الخطا في detail واعادة المحاولة UpdateBatch للـ headet لاتقوم بتخزين اي شي لقاعدة البيانت نهائياً يبدوا ان السبب انه تم عمل updatepatch بنجاح لكن فعلياً لم يتم التخزين في قاعدة البيانات
هل هناك حل لهذه المشكله
كود :
try
ADODataSet1.UpdateBatch;
ADODataSet2.UpdateBatch;
if not ADOConnection1.InTransaction then
ADOConnection1.CommitTrans;
except
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans
end;وشكراً

