بواسطة الدلفي7 وانتربيز 2007 الى ماذا يشير الخطاء deadlock والمشكلة انه يظهر احيانا ولايظهر احيانا اخرى في ظل نفس الظروف التى يمكن ملاحظتها
معمر محسن كتب :بواسطة الدلفي7 وانتربيز 2007 الى ماذا يشير الخطاء deadlock والمشكلة انه يظهر احيانا ولايظهر احيانا اخرى في ظل نفس الظروف التى يمكن ملاحظتها
ما هذا هل هي حزورة :confused:
وضح اكثر لو سمحت ..
للتوضيح
عند تنفيذ عملية ما واذكر انها كانت ارسال بيانات فاتورة مبيعات الى الجداول وقاعدة البيانات هي انتربيز2007 وهذه العملية ليست اول مرة تنفذ ظهر رسالة خطا تقول deadkock فقط هذه الكلمة ولم ترسل البيانات بل توقف البرنامج عن الاستجابة حتى تم اغلاق البرنامج عن طريق التاسك مانجر "انهاء المهمة" وعند تنفيذ العملية من جديد لم تظهر الرسالة علما باني اعمل من خلال برنامج الدلفي وليس من خلال برنامج تنفيذي مستقل ولقد ظهرت لي هذه الرسالة سابقا ولا اذكر الظروف التى ظهرت فيها
قمت بعملبة على سجل او اكثر ولم تنهها وتحاول القيام بعملية اخرى بنفس الوقت
عليك ان تنهي transactions قبل الشروع في اخرى
اكتب شيئ مثل
كود :
Database1.StartTransaction;
Database1.Commit;
والسلام عليكم
لا اعرف هل في الحالة التى ظهرت فيها الرسالة استعملت transaction ام لا لاني استعملها في اوامر ولا استعملها في اوامر اخرى فانا استعملها فقط عندما تكون هناك عدة عمليات على عدة جداول وتنفيذها كلها او عدم تنفيذها كلها اي ان لا يتم تنفيذ جزء منها مثل اجراء شئ على الجدول الاول وتفشل الاجراءات على الجدول الثاني وهذا كل ما اعلمه عن استعمال transaction وايضا انا استعملها بالطريقة التالية
ibtransaction1.Active := false;
ibtransaction1.StartTransaction;
xxxxxx
xxxxx
ibtransaction1.CommitRetaining;
وفي العادة تكون الاجراءات التى استعمل transaction فيها تستخدم transaction اخرى عير default transaction ولكني ساستخدم transaction في كل التعليمات على الجداول مادامت مطلوبة