delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف يمكن التعديل والحذف في نفس الوقت؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم
جمعه مباركه للجميع

حاولت كثير ولكن لم أستطع ولذلك ارجو من المجيب أن يبين لي السبب

حيث كان الكود الخاص بي هو
كود :
ADOQuery1.Close; ADOQuery1.SQL.Text:='UPDATE table1 SET total=total-2 '; ADOQuery1.ExecSQL;

الكود يعمل جيدا ولكن عند إضافة سطر الحذف يتوقف عن العمل كما في المثال التالي

كود :
ADOQuery1.Close; ADOQuery1.SQL.Text:='UPDATE table1 SET total=total-2 '; ADOQuery1.SQL.Text:='delete from table1 where total = 0'; ADOQuery1.ExecSQL;


اريد حل ولكن ارجو منكم من يقول لي ماهو السبب في هذا الخطأ فبمجرد إضافة سطر الحذف يتوقف عن العمل
Try using:

ADOQuery1.Close;
ADOQuery1.SQL.Text:='UPDATE table1 SET total=total-2 ';
ADOQuery1.ExecSQL;

ADOQuery1.Close;
ADOQuery1.SQL.Text:='delete from table1 where total = 0';
ADOQuery1.ExecSQL;
ينصح باستخدام Transction بحيث اما ان تتم العمليتين او لا

فمثلا تقوم بالتعديل ولا يتم الحذف لاي سبب
(18-03-2016, 05:35 PM)Manarsoft كتب : [ -> ]Try using:

ADOQuery1.Close;
ADOQuery1.SQL.Text:='UPDATE table1 SET total=total-2 ';
ADOQuery1.ExecSQL;

ADOQuery1.Close;
ADOQuery1.SQL.Text:='delete from table1 where total = 0';
ADOQuery1.ExecSQL;
جزاك الله خير تم بنجاح ولكن عند الحذف يعلق الدلفي ويظهر رسال لقد تم إرفاق رسالة الخطأ


(19-03-2016, 08:03 AM)Delphi4Us كتب : [ -> ]ينصح باستخدام Transction بحيث اما ان تتم العمليتين او لا

فمثلا تقوم بالتعديل ولا يتم الحذف لاي سبب

هل ممكن مثال
لم أفهم الرسالة بالعربية
يبدو أنها تتعلق بقواعد الببيانات access اي انه تم التغيير في المفتاح الرئيسي او من هذا القبيل فالدلفي يعلق ويتوقف عن العمل فانا ايضا أردتها ان تكون بلغة أخرى ولكن للأسف ظهرت بالعربية
فالرساله لها علاقة بقواعد البيانات وهي عند الحذف تظهر وتخبرك بأنه تم تغيير المفتاح الرئيسي السبب أو لحلحل هذه المشكلة غير واضح
لماذا لا تستعمل Absolute Database ؟
كود :
try Adoconnection1.beginTransction; ADOQuery1.Close; ADOQuery1.SQL.Text:='UPDATE table1 SET total=total-2 '; ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.SQL.Text:='delete from table1 where total = 0'; ADOQuery1.ExecSQL AdoConnection1.commit; expection Adoconnection1.RollBack end;
(19-03-2016, 03:16 PM)Manarsoft كتب : [ -> ]لماذا لا تستعمل Absolute Database ؟
كود :
إستخدمت أكسس لأن قاعدة بيانات البرنامج صغيره والاكسس مثبت تقريبا في جميع الأجهزه وهل Absolute Database يجب تثبيته ؟

(19-03-2016, 04:51 PM)Delphi4Us كتب : [ -> ]
كود :
try Adoconnection1.BeginTrans; try ADOQuery1.Close; ADOQuery1.SQL.Text:='UPDATE table1 SET total=total-2 '; ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.SQL.Text:='delete from table1 where total = 0'; ADOQuery1.ExecSQL ADOConnection1.CommitTrans; Except ON  E:Exception DO ADOConnection1.RollbackTrans; end; end;

نفس الخطأ

مشكل بمعنى الكلمة هل منكم من مرت عليه هذه المشكلة
سلام عليكم
قم بإخراج الشرط المساواة total = 0
قبل تنفيذ الاستعلام الثاني delete

ارفق مثال
الصفحات : 1 2