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

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

أردت أن أنقص من حقل رقمي قيمه معينة أدخلها في edit1.text ولكن يظهر لي خطأ في جملة Update
أين الخطأ في هذا الكود
انتبه إلى أن edit1.text دخلت كنص و أنت تريد إدخال قيمتها:
الحل:
كود :
ADOQuery2.Close; ADOQuery2.SQL.Text:='UPDATE table1 SET total =(total - '+edit1.text+') WHERE id=1'; ADOQuery2.ExecSQL;
في مكان edit1.text
أكتب strtoint(edit1.text)
يجب تحويل قيم edit1 من نص الى عدد
لا تنسى إستدعاء الأمر Clear
(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
(09-03-2016, 08:47 PM)ALG2009 كتب : [ -> ]هل ممكن مثال على إستخدام هذه التعليمة أعني clear

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