خطأ في في استعلام sql بين تاريخين
#1
السلام عليكم ورحمة الله وبركاته
ا ين الخطأ في هذا الاجراء
كود :
SQL.Text :=('SELECT * FROM produit where date_entree between #+FormatDatTime('mm/dd/yyyy',DateTimePicker1.date)+'#'+'and #'+FormatDateTime('mm/dd/yyyy',DateTimePicker2.Date)+'#');
حيث انني عندما انفذ البرنامج الظغط على f9 لا يجد delphi اي خطأ وعند الظغط على ايقونة تنفيذ الاجراء يعطيني الرسالة الظاهرة في الصورة
بارك الله فيكم
دمتم اوفياء
كود :
http://i1244.photobucket.com/albums/gg563/surprise329/2-1_zpse87c0f1d.png
الرد
#2
السلام عليكم...

ضع فراغ قبل كلمة and الموجودة ضمن علامات الاقتباس أو التنصيص:

كود :
هكذا ' and #' بدل 'and #'

أو ادمج النصين معاً مع ترك فراغ قبل و بعد كلمة and :

كود :
+ FormatDateTime(......) + '# and #' + FormatDateTime(......) + '#';

* لا يحدث خطأ عند التصريف (Compile) لأن الأمر متعلق بـ string لا علاقة لدلفي به. أما عند التنفيذ (run) فإن الـ string يُرسل إلى محرك قواعد البيانات حيث سيلتقي بالخطأ، و هو التصاق الرمز # بالكلمة and.

نرجو الاستفادة و السلام.
الرد
#3
بارك الله فيك على الشرح المميز أخي Najy Ibraheem وزادك الله في علمك و اثقل به ميزانك يوم لا ينفع مال و لا بنون الا من أتى الله بقلب سليم
الرد
#4
لم تنجح الفكرة لا يقبل ال sql هذا الرمز # و عند حذفه و تنفيذ البرنامج لا يعطي رسالة الخطأ ولكنه لا يعطي النتائج المرجوة و لاكن تظهر الحقول فارغة في ال dbgrid
الرد
#5
جرب التعليمة على الصيغة
SQL.Text :='SELECT * FROM produit where date_entree between ''' + FormatDatTime('mm/dd/yyyy',DateTimePicker1.date) +''' and ''' + FormatDateTime('mm/dd/yyyy',DateTimePicker2.Date) +'''';
الرد
#6
اخي جرب هذا الامر:

SQL.Text :='SELECT * FROM produit where date_entree >= ''' + FormatDatTime('mm/dd/yyyy',DateTimePicker1.date) +''' and date_entree <=''' + FormatDateTime('mm/dd/yyyy',DateTimePicker2.Date) +'''';
بالتوفيق
الرد
#7
شكرا بارك الله فيكم
الرد


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


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