الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الإستفسار باستخدام حقل تاريخى Query

مغلق
بدأه newmember في 4 نوفمبر 2001 · 7 رد · 935 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

الإخوة الأعزاء

حاولت تكوين استفسار باستخدام حقل تاريخى باستخدام الكود التالى:

Query1.close;

query1.sql.add('select * form filename');

query1.sql.add('where fieldname = edit1.text');

query1.open;

ولكننى احصل على رسالة خطاء

وعندما جربت تكوين الإستفسار باستخدام المعالج السحرى لدلفى

على نفس الملف والحقل وبالضغط على SQL من ضابط الأهداف وكتابة تاريخ معين وليكن 31/10/2001 فاننى احصل على خطاء بعدم تطابق البيانات وعندما أغير تنسيق التاريخ الى 10/31/2001 أحصل على نتيجة صحيحة مع ان تنسيق التاريخ على جهازى dd/mm/yyyy .

فاين تكمن المشكلة وفقكم الله وأرجوا اعطائ الكود اللازم لتكوين هذا الإستفسار

وشكرا مقدما.

#2

يوجد شي في query اسمه Params

يمكنك الاستفادة منه وهو متل تعريف المتغيرات حيت يمكنك تعريف Paramsمن نوع date واستخدامه داخل جملة sql

ساوضح لك اكتر

1- عرف Params من نوع date متلا a

2-اكتب داخل جملة sql التالي

select * from table

where date > a

3- ضع زر على الفررم واكتب التالي

Query2.Params[0].value =edit1.text;

Query2.open;

او ضع

Query1.ParamByName('a').value=edit1.text

query1.open;

وشكرا

#3

شكرا جزيلا على الرد أخ madi

وياريت توضحلى أكثر لأننى مبتدئ بالدلفى وأحتاج الى زيادة من الشرح وخصوصا حول تعريف params من النوع date كما ورد فى الرد وأين يمكن وضع هذا التعريف لأننى جربت ولم أفلح

وكل العام والجميع بخير بمناسبة قرب الشهر الفضيل .

#4

ضع quiry على الفورم .

وادهب الى خصائصها وافتح SQL واكتب

select * from table

wher date =:pardate

تم اغلق صندوق SQL

حيت pardate: يمتل البارامتر .

الان ادهب الى خاصية في quiry اسمها parames

ستجدها عبارة عن عنصر واحد وهو pardate

اضغط على هذا العنصر وخد خصائصه و ستجد احد الخصائص هى نوع البارامتر , حدد نوعه تاريخ

الان انت جاهز لاستخدام البارامتر

Query2.Params[0].value =edit1.text;

Query2.open;

او ضع

Query1.ParamByName('pardate').value=edit1.text

query1.open;

شكرا

#5

سلام

ضع quiry على الفورم .

وادهب الى خصائصها وافتح SQL واكتب

select * from table

wher date =: Pardate

تم اغلق صندوق SQL

حيت pardate: يمتل البارامتر .

الان ادهب الى خاصية في quiry اسمها parames

ستجدها عبارة عن عنصر واحد وهو pardate

اضغط على هذا العنصر وخد خصائصه و ستجد احد الخصائص هى نوع البارامتر , حدد نوعه تاريخ

الان انت جاهز لاستخدام البارامتر

Query2.Params[0].value =edit1.text;

Query2.open;

او ضع

Query1.ParamByName('pardate').value=edit1.text

query1.open;

شكرا

#6

مشكور ياأخ madi تعرضت لمشكلة أخرى فأرجوا المزيد من المساعدة

عندما أدخل التاريخ المطلوب وليكن مثلا "1/10/2001" حسب التنسيق dd/mm/yyyy

فان النتيجة تكون حسب التاريخ "10/1/2001" أى حسب التنسيق mm/dd/yyyy

وإذا أدخلت التاريخ مثلا "31/12/2000" أحصل على رسلة بالخطاء ولكن إذا غيرت التاريخ الى "12/31/2000 " تكون نتيجة الإستفسار صحيحة مع أن تنسيق التاريخ على جهازى هو dd/mm/yyyy

فما الحل لهذه المشكلة مع الشكر مقدما

#7

مع انه باستخدام البارامتر تنتهي مشكلة التاريخ , لكن حاول استخدام التالي :

في بداية البرنامج جرب وضع الالي

'LongDateFormat= 'dd/mm/yyyy

'ShortTimeFormat='dd/mm/yyyy

وشكرا

#8

مشكور ياأخ madi وبارك الله فيك الحقيقة انك ماقصرت معاى وأتمنى لك التوفيق والنجاح(f)

هذا الموضوع مغلق.

مواضيع مشابهة