كيف يمكن التعديل والحذف في نفس الوقت؟
#1
السلام عليكم
جمعه مباركه للجميع

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

حيث كان الكود الخاص بي هو
كود :
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;


اريد حل ولكن ارجو منكم من يقول لي ماهو السبب في هذا الخطأ فبمجرد إضافة سطر الحذف يتوقف عن العمل
الرد
#2
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;
الصقر يحلق وحيدا .. الغربان تحلق جماعات
الرد
#3
ينصح باستخدام Transction بحيث اما ان تتم العمليتين او لا

فمثلا تقوم بالتعديل ولا يتم الحذف لاي سبب
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#4
(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 بحيث اما ان تتم العمليتين او لا

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

هل ممكن مثال


الملفات المرفقة
.jpg   بدون عنوان.jpg (الحجم : 33.71 ك ب / التحميلات : 30)
الرد
#5
لم أفهم الرسالة بالعربية
الصقر يحلق وحيدا .. الغربان تحلق جماعات
[-] كل من 1 user says قال شكرا ل Manarsoft على المشاركة المفيدة
  • ALG2009
الرد
#6
يبدو أنها تتعلق بقواعد الببيانات access اي انه تم التغيير في المفتاح الرئيسي او من هذا القبيل فالدلفي يعلق ويتوقف عن العمل فانا ايضا أردتها ان تكون بلغة أخرى ولكن للأسف ظهرت بالعربية
فالرساله لها علاقة بقواعد البيانات وهي عند الحذف تظهر وتخبرك بأنه تم تغيير المفتاح الرئيسي السبب أو لحلحل هذه المشكلة غير واضح
الرد
#7
لماذا لا تستعمل Absolute Database ؟
الصقر يحلق وحيدا .. الغربان تحلق جماعات
الرد
#8
كود :
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;
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#9
(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;

نفس الخطأ

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

ارفق مثال
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم