السلام عليكم
لدي قاعدة بيانات اكسس مربوطة ببرنامج دلفي. سؤالي هو :
كيف يمكنني التحكم في رسائل الخطأ التي تظهر لي مثل رسالة عدم تكرار حقل المفتاح أو إلزامية إدخال البيانات في الحقل الذي لا يقبل الفراغ.
وشكرا
ما اعرفه اننا نستعمل Try..Except لتعامل مع رسائل الأخطاء
وهذا مثل على ذلك :
PHP كود :
var X : Integer = 0; Y : Integer = 10; Z : Integer = 0; begin try Z := Y Div X; except on EDivByZero do ShowMessage('Sorry you can''t division by zero'); end; end;
لا اعلم إذا كان الأمر مختلف مع قواعد البيانات .. لكن إذا كان مختلف ربما وجب عليك عمل
دالة تتحقق من ما إذا كان حقل المفتاح الذي يدخله المستخدم موجود مسبقاً ام ﻻ قبل إاضافته
أعتقد ان هذه الطريقة المتبعة ..
أعذرني فلم أتعلم التعامل مع قواعد البياانات منذ أن دخلت على هذه اللغة
السلام عليكم ورحمة الله وبركاته،اولا أتقدم بالشكر للقاءمين على هذا المنتدى من الأساتذة الكرام والذين يساهمون في اثراء هذا المنتدى.
1- بالنسبة لرسالة عدم تكرار الحقل تستطيع ان تستخدم try..except..end; ,وهذا للكود يجب ان يوضع في الإجراء on click الخاص بزر الحفظ، خصوصا اذا كنت تستخدم dbedit . وهذا مثال على ذلك
PHP كود :
try Table1.post; Exception Showmessage('clé déjà existe'); End;
كما انك تستطيع التحكم في رسالة الخطاء في الحدث onexit الخاص ب dbedit باستعمال findkey ولكن بحفظ الرقم (المفتاح الرئيسي)مثلا الموجود في dbedit في متغير ، ثم تقوم بإلغاء ادخال البيانات للجدول باستخدام cancel ,ثم تستخدم Findkey . وهذا مثال يوضح ذلك.
PHP كود :
var S:string; Begin If table1.state in[dsedit,dsinsert] then Begin S:=dbedit1.text; Table1.cancel; If table1.findkey([dbedit1.text]) then Begin Showmessage('cle déjà existe'); Exit; End Else Begin Table1.append; Dbedit1.text:=s; End; End; End;
في المرة المقبلة ساوافيكم بشرح اخر انشاء الله،لإتمام الإجابة وشكرا.
السلام عليكم
بالاضافة الى ماقاله الاخوان و بما انك تستعمل اكسس فتوجد طريقة اخرى سهلة فعند انشاء احد حقول جدولك تختار نوعه مثلا numérique تجد خيارين :
- الخيار الاول : لو تريد ان لا يتكرر هدا الحقل فاختار unique
- الخيار الثاني : لو تريد ان لا يبقى هدا الحقل فارغا فاختر requis .
استعملت في مثالي access 2007 توجد صورة بالمرفقات للتوضيح
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
السلام عليكم. شكرًا على الملاحظة عندي خطاء في الكود السابق،،،بما انني احتفظت بقيمة dbedit1 في المتغير s وقمت بإلغاء لإدخال المعلومات فان الكود يكون كالآتي :