السلام عليكــم ورحمـة الله وبركاتــة
عندي برنامج يوجد به DBedit1
اقوم بادخال اسماء اشخاص الى قاعدة البيانات
كيف يمكنني منع تكرار ادخال اسم شخص مرتين الى قاعدة البيانات
شكرا
السلام عليكــم ورحمـة الله وبركاتــة
عندي برنامج يوجد به DBedit1
اقوم بادخال اسماء اشخاص الى قاعدة البيانات
كيف يمكنني منع تكرار ادخال اسم شخص مرتين الى قاعدة البيانات
شكرا
السلام عليكم
يجب أن يكون ذلك من أصل قاعدة البيانات أي أن هذا الحقل من خصائصه منع التكرار
ولا أعتقد أن للبرمجة علاقة بهذا الخصوص إلا ما ندر (كأن نستخدم Edit وليس DBEdit من أجل التحقق من ذلك قبل الإدخال في قاعدة البيانات)
ربما يا أخي الأسماء تتكرر لأن اسمك نسيم ويوجد العديد اسمهم نسيم
ولكن المفتاح الرئيسي يجب الا يتكرر والا يسببلك مشكل
واذا اردت عدم تكرار الاسم ممكن تستعمل خاصية البحث
والله اعلم
افند ما قاله الاخوان الاسم من الممكن ان يتكرر ام المميز (المعرف) فذلك لا يمكن
لكن هناك فرضية ان نستخدم الاسم كمعرف في الجدول وعدم السماح بتكراره
لذلك ستخدم الكود التالي في الحدث OnExit للمكون DBedit
try
Table1.FindKey([DBEdit1.Text]);
Table1.Edit;
except
ShowMessage(' هذا الاسم موجود مسبقا ');
DBEdit1.SetFocus;بالتوفيق
اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا
مجرد رأي أول نصيحة
أستخدم الأداة edit بدلا من dbedit لأنك لن تستطيع الكتابة في الـ dbedit حتى تكون عامل شجل جديد أو عامل تعديل على الجدول المربوط فيه الـ dbedit
و لما يكون هذا و قمت بالبحث عن أسم معين فسوف يجري 1 من 2
1- إلغاء كل ما أضفته من معلومات في الأدوات dbedit
2- حفظ السجل قبل تنفيذ عملية البحث بهذا نكون حفظنا قبل التأكد من تكرار الأسم
كأقتراح أقترح أستخدام الـ edit كما في الكود
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.filtered := false;
Table1.filter := 'name = '''+edit1.text+'''';
table1.filtered := true;
if table1.recordcount > 0 then
showmessage('هذ الأسم موجود مسبقاً')
else
// أجراء الحفظ
save;
end;I'm Away For Sometimes
I'll Finish My Works
Come Back Soon
More Study > More Search > More Try > More Learning > Great Success
الأسماء تتشابه ... وأيا كانت الطريقة لعدم تكرار الإسم فإنها قد تكون غير فعالة
مثلا من الممكن ان يدخل الإسم
محمد أحمد عبدالله
محمد احمد عبدالله
محمد أحمد عبد الله
محمد احمد عبد الله
نفس الإسم وقد تم تكراره أربعة مرات ولا تعتبره قواعد البيانات مكررا لذلك أفضل إستخدام حقل رقمي كمفتاح أساسي
بالعموم إن كان هناك حقل مفتاح أساسي أريد التأكد من قيمته هل كانت موجودة أو لا قبل الإضافة ف أستخدم الطريقة التالية بإفتراض ان لدينا حقلين واحد للرقم نوعه رقم وواحد للإسم نوعه نص
1- قم بإعلان عن متغيرات خاصة بنفس نوع بيانات الحقول المطلوبة على مستوى الكلاس كالتالي
private
تستخدم القيم المعلنه للمقارنة عند الخروج من الحقل المراد التشييك عليه كالتالي
عند الدخول للحقل
procedure TForm.Emp_NoEnter(Sender: TObject);
procedure TForm.Emp_NoExit(Sender: TObject);
ونفس الإجرائين السابقين يكرروا للحقل الثاني الإسم مع مراعاه نوع البيانات
إستخدم البروسيدر التالي عند الخروج من الحقلين لفحص السجلات من وجود القيم المطلوبة من عدمه داخل الجدول
procedure TForm.ChkVals();
أرجو أن يكون المثال واضح ومفيد تحياتي