ما الخطأ في استعلام تحديث حقل بقيمة من Edit
#1
Question 
كود :
السلام عليكم أردت أن أنقص من حقل رقمي قيمه معينة أدخلها في edit1.text ولكن يظهر لي خطأ في جملة Update أين الخطأ في هذا الكود ADOQuery2.Close; ADOQuery2.SQL.Text:='UPDATE table1 SET total =(total - edit1.text) WHERE id=1'; ADOQuery2.ExecSQL;

أردت أن أنقص من حقل رقمي قيمه معينة أدخلها في edit1.text ولكن يظهر لي خطأ في جملة Update
أين الخطأ في هذا الكود
الرد
#2
انتبه إلى أن edit1.text دخلت كنص و أنت تريد إدخال قيمتها:
الحل:
كود :
ADOQuery2.Close; ADOQuery2.SQL.Text:='UPDATE table1 SET total =(total - '+edit1.text+') WHERE id=1'; ADOQuery2.ExecSQL;
[-] كل من 1 user says قال شكرا ل PLANSHARP على المشاركة المفيدة
  • ALG2009
الرد
#3
في مكان edit1.text
أكتب strtoint(edit1.text)
يجب تحويل قيم edit1 من نص الى عدد
[-] كل من 1 user says قال شكرا ل menni_ahmed على المشاركة المفيدة
  • ALG2009
الرد
#4
لا تنسى إستدعاء الأمر Clear
[-] كل من 1 user says قال شكرا ل Manarsoft على المشاركة المفيدة
  • ALG2009
الرد
#5
(09-03-2016, 12:44 PM)PLANSHARP كتب : انتبه إلى أن edit1.text دخلت كنص و أنت تريد إدخال قيمتها:
الحل:
كود :
ADOQuery2.Close; ADOQuery2.SQL.Text:='UPDATE table1 SET total =(total - '+edit1.text+') WHERE id=1'; ADOQuery2.ExecSQL;

جزاك الله خير لقد إشتغل الكود
(09-03-2016, 03:44 PM)menni_ahmed كتب : في مكان edit1.text
أكتب strtoint(edit1.text)
يجب تحويل قيم edit1 من نص الى عدد
تعمل بدون strtoint() فلو أضفتها تظهر لك رسالة خطأ
(09-03-2016, 04:14 PM)Manarsoft كتب : لا تنسى إستدعاء الأمر Clear
لماذا إستدعاء هذا الأمر ما دوره؟

على حسب الكلمه تعني المسح والكويري لا تحتوي على نص أي نص sql

هل ممكن مثال على إستخدام هذه التعليمة أعني clear
الرد
#6
(09-03-2016, 08:47 PM)ALG2009 كتب : هل ممكن مثال على إستخدام هذه التعليمة أعني clear

----------
وظيفتها مسح التعليمات والاوامر السابقة
الصقر يحلق وحيدا .. الغربان تحلق جماعات
الرد
#7
هكذا أخي:
كود :
ADOQuery2.Close; ADOQuery2.SQL.clear; ADOQuery2.SQL.Text:='UPDATE table1 SET total =(total - '+edit1.text+') WHERE id=1'; ADOQuery2.ExecSQL;
الرد
#8
إقتباس :لا تنسى إستدعاء الأمر Clear

لا علاقة لClear باللامر أو الخطأ لان الاخ استخدم SQL.Text
ليكون الفهم صحيح: Clear تستخدم لحذف المحتوي النصي لSQL وغالبا تكتب قبل Add لحذف اي نص كان من قبل مثلا كود الاخ PLANSHARP يكون

كود :
ADOQuery2.Close; ADOQuery2.SQL.Text:='UPDATE table1 SET total =(total - '+edit1.text+') WHERE id=1'; ADOQuery2.ExecSQL;
أو Add بدلا من Text
كود :
ADOQuery2.Close; ADOQuery2.SQL.clear; ADOQuery2.SQL.Add:='UPDATE table1 SET total =(total - '+edit1.text+') WHERE id=1'; ADOQuery2.ExecSQL;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
[-] كل من 1 user says قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • wadoud
الرد
#9
بارك الله فيكم
الرد


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


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