السلام عليكم
وضعت حقل في قاعدة البيانات لحفظ التاريخ ( تاريخ / وقت ) ، إذا عملت تحديث refresh للـADOQuery تظهر رسالة خطأ ( تجاوز سعة حقل تاريخ ووقت )
السلام عليكم
وضعت حقل في قاعدة البيانات لحفظ التاريخ ( تاريخ / وقت ) ، إذا عملت تحديث refresh للـADOQuery تظهر رسالة خطأ ( تجاوز سعة حقل تاريخ ووقت )
السلام عليكم ورحمة الله وبركاته
أرجوا توضيح تلك الأسئلة حتى أقدر على مساعدتك .
1- ما هو نوع حقل التاريخ ؟
أقصد هل هو Short Date , LongDate , ...
2- هل هذا الحقل Required ؟
أقصد هل من اللازم ادخال قيمة فيه .
تم تعديل هذه المشاركة بواسطة eng2002 في 18 أبريل 2006 في 23:44
استغفر الله العظيم من كل ذنب وأتوب إليه
اخي الكريم تحدث هذه الحالة عند تجاوز المجال مثلا
مثلا لو فرضنا ان DBMS الذي تستخدمه حقل Datetime يخزن قيمة بين 1/1/1899 و ما فوق
و تكون انت قد وضعت قيمة اقل من هذه القيمة فتظهر رسالة الخطأ التي تتحدث عنها
و يمكن ان تحدث في حال كانت القيمة العليا هي 1/1/2075 فاذا حاولت ان تضيف قيمة اكبر فتظهر الرسالة ايضا
لحل المشكلة يجب عليك ان ترى ما هي مجالات القيم التي تحاول ادخالها
و اختيار نوع الحقل المناسب حسب ما تريد حيث ان ّ المجالات تعتمد على نوع DBMS الذي تستخدمه و هي تختلف من واحد الى اخر
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
السلام عليكم
الظاهر أن المشكلة لاعلاقة لها بتجاوز السعة، لأن رسالة الخطأ اﻷصلية المكتوبة بالإنجليزي هي
DateTime null
وهي تدل على أن هذا الحقل لم يتم إرساله في الـ Query أو الـ Parameter حسب طريقة ربطه وإدخاله
في هذه الحالة لابد من مراجعة البرنامج في حالة اﻹدخال والجديد والحفظ وحفظ التعديل
السلام عليكم
نوع التاريخ short
وضعت اداة DBEdit وربطتها باداة ADOQuery
ووضعت امر التحديث ADOQuery.refresh
العجيب اني أدخلت التاريخ يدويا لقاعدة البيانات الاكسيس وعند استعراضه ببرنامجي بالدلفي ظهر التاريخ مغاير لما أدخلته ؟
أولا نظرا لاستخدامك Database من نوع Access :( فقبل عمل أى اقتراح عليك أولا بعمل Compact and Repair database
أن لم ينجح هذا العمل قم بتعديل الــ Format بتاعة التاريخ إلى mm/dd/yyyy (وهذا حل ظهور التاريخ مخالف لما أدخلته )
وأتأكد من . هل هذا الحقل Required ؟
أقصد هل من اللازم ادخال قيمة فيه . (واذا كان ذلك فتأكد أنك ترسل القيمة بالفعل)
استغفر الله العظيم من كل ذنب وأتوب إليه
اخي الكريم المتميز
لقد القيت نظرة سريعة على المشروع الذي ارفقته و لكن لم تظهر لي رسالة الخطأ ارجوا توضح كيف تظهر رسالة الخطأ في البرنامج
ملاحظة: بالنسبة للمشروع ككل فقد لاحظت اخي الكريم ان هناك اخطاء كثيرة ليست برمجية
و انما في الهيكلية او الطريقة التي بنيت بها البرنامج
مثل: انك تضع في كل Form تضع Adoconnecction و استخدام Adoquery بدل من AdoTable الخ
حيث سوف نوضع ذلك في الدورة
هذا اذا اردت العودة الى دلفي ;)
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
جزاك الله خير
الخطأ انه ما يظهر التاريخ المخزن بقاعدة البيانات بطريقة صحيحة
مثلا اخزن تاريخ 11/01/1427 عندم استعرضها داخل البرنامج اجد التاريخ غير صحيح ؟
وثانيا لو اردت التحديث يظهر رسالة خطأ
وشكرا
اسف جدا لعدم الرد
و لكن هناك ضغط كبير في الايام السابقة
بالنسبة للتطبيق الذي تعمله:
هناك العديد من الاخطاء في التطبيق حيث انّ طريقة التصميم وطريقة عرض الواجهات فيها اخطاء
احد اهم الاخطاء هي استخدام Adoconnection لكل فورم بينما يجب ان تضع واحد لجميع الفورم
بالنسبة لخطأ التاريخ لا يوجد هناك خطأ و انما لم تضع في جملة SQL التي تضيف المتدرب حقل التاريخ فكيف سوف ينضاف؟؟!!
قم بتعديل الكود الى التالي وسوف تلاحظ انّ حقل التاريخ اصبح يخزن في قاعدة البيانات
with adoquery1 do
begin
sql.Clear;
sql.Add('insert into [names]');
sql.Add('(namemot,sigl,phone,mobile,job,phonework,address,addresswork,datesign)values');
sql.Add('(:P1,:P2,:P3,:P4,:P5,:P6,:P7,:P8,:P9)');
prepared;
parameters.ParamByName('P1').Value:=edtname.Text;
parameters.ParamByName('P2').Value:=edtsigl.Text;
parameters.ParamByName('P3').Value:=edtphone.Text;
parameters.ParamByName('P4').Value:=edtmobile.Text;
parameters.ParamByName('P5').Value:=edtjob.Text;
parameters.ParamByName('P6').Value:=edtphonework.Text;
parameters.ParamByName('P7').Value:=edtaddress.Text;
parameters.ParamByName('P8').Value:=edtaddresswork.Text;
parameters.ParamByName('P9').Value:=EdtTasjeel.Text;
ExecSQL;
sql.Clear;
sql.Add('select * from [names]');
//sql.Add('(namemot,sigl,phone,mobile) values ('+ edtname.Text +','+ edtsigl.Text +','+ edtphone.Text +','+ edtmobile.Text +')');
open;
showmessage('ÚÏÏ ÇáãÊÏÑÈíä ÇáÂä '+ inttostr(adoquery1.RecordCount));
frmaddmot.Close;
end;نصيحة: قم باستبدال AdoQuery ب Adotable
و قم ايضا باستخدام DbControls بدل من Controls العادية
واسف مجددا لانشغالي
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
هذا الموضوع مغلق.