![]() |
|
عدم تكرار سجل في قاعدة بيانات ؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : عدم تكرار سجل في قاعدة بيانات ؟ (/showthread.php?tid=6121) |
عدم تكرار سجل في قاعدة بيانات ؟ - bassem_43 - 25-04-2014 السلام عليكم بحثت في المنتدى قبل طرح سؤالي لكن لم اجد ما ابحث عنه ربما الكلمات الدلالية غير متوافقة المهم ما هي احسن طريقة لمنع تكرار ادخال سجلات معلومات الى قاعدة بيانات اكسس استخدام دالفي7 في هدا المشروع ؟؟ للتوضيح اكثر لدي fiche1 تحتوي على زر اظافة شخص جديد بعد الضغط على الزر ننتقل الى fiche2 التي تحتوي بدورها على حقول لادخال البيانات من رقم واسم ولقب و ... الرقم هو مفتاح رئيسي طبعا لن يتكرر لانه يزداد تلقائيا لكن ماهي طريقة جعل الاسم واللقب وتاريخ الازدياد لنفس الشخص لا تتكرر كي لا نحصل على شخص واحد في قاعدة بياناتنا برقمين مختلفين - اظن الفكرة وصلت - انتظر ارآكم واقتراحاتكم وشكرا عدم تكرار سجل في قاعدة بيانات ؟ - لؤي - 25-04-2014 bassem_43 كتب :ماهي طريقة جعل الاسم واللقب وتاريخ الازدياد لنفس الشخص لا تتكرر كي لا نحصل على شخص واحد في قاعدة بياناتنا برقمين مختلفين السلام عليكم عرف الحقول التي لا تريد أن تتكرر سجلاتها بالخاصية UNIQUE كود : CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)عدم تكرار سجل في قاعدة بيانات ؟ - bassem_43 - 25-04-2014 لؤي كتب :السلام عليكماخي لؤي بارك الله فيك على الرد لكن انا انشات الجداول باكسس وليس برمجيا اظن انه يمكن اظافة السطر الاخير لوحده اقصد CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName) لكن في اي حدث؟؟ هل هو وان كرييتد وما معنى uc_PersonID ؟ وشكرا عدم تكرار سجل في قاعدة بيانات ؟ - لؤي - 26-04-2014 bassem_43 كتب :لكن في اي حدث؟؟ هل هو وان كرييتد وما معنى uc_PersonID ؟ وشكراالسلام عليكم راجع هذا الرابط:[URL="http://office.microsoft.com/en-us/access-help/prevent-duplicate-values-in-a-field-HA010283317.aspx"] http://office.microsoft.com/en-us/access-help/prevent-duplicate-values-in-a-field-HA010283317.aspx[/URL] أو الصورة في المرفقات: أما معنى uc_PersonID فهو مثال فقط ذكرته ويكون ذلك برمجيا عدم تكرار سجل في قاعدة بيانات ؟ - S.FATEH - 26-04-2014 السلام عليكم يمكنك استخدام استعلام count من ado query للحصول على عدد السجلات ملاحظة غير قابل للتنفيد لتوضيح الفكرة فقط PHP كود : select count from tableau_clients where id = id and nom = "nom" and عدم تكرار سجل في قاعدة بيانات ؟ - bassem_43 - 26-04-2014 بارك الله فيكم اخي فاتح ولؤي على الرد والمتابعة لقد وجدت طريقة اخرى ليست احترافية لكنها تفي بالغرض PHP كود : procedure TForm2.validerClick(Sender: TObject);عدم تكرار سجل في قاعدة بيانات ؟ - Najy Ibraheem - 26-04-2014 السلام عليكم... الطريقة الأفضل هي استعمال الفهارس الفريدة (Unique Indexes) في قاعدة البيانات نفسها عند تصميمها بـ Access أو غيره: 1. في Access - و في وضعية تصميم الجدول - افتح نافذة الفهارس. 2. قم بتعريف فهرس فريد (Unique) يتكون من الحقول الثلاثة (الاسم و اللقب و التاريخ). في هذه الحالة سيمنع Access التكرار و يعيد رسالة خطأ إلى البرنامج. 3. في دلفي ضع كود الإضافة أو التعديل ضمن كتلة try ... except لاقتناص الأخطاء حيث يمكنك عرض رسائلك الخاصة. كود : try
// ...
// كود حفظ البيانات
// ...
except
on E: Exception do begin
ShowMessage('Error on saving data.' + #13#10 + 'Error message:' + #13#10 + E.Message);
if (table.State = dsInsert) or (table.State = dsEdit) then table.Cancel;
end;
end;نرجو الاستفادة و السلام. |