المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : رسائل الخطأ في قواعد البيانات : violation de clé


rm31
24-12-2009, 02:36 PM
السلام عليكم ورحمة الله وبركاته
في جداول من نوع برادوكس paradox عند تكرار المفتاح تظهر لك الرسالة التالية:
violation de clé
الكثير منا يريد تغييرها حسب ما يحتاجه
الطريقة سهلة جدا وموجودة في موضوع سابق بالمنتدى

procedure TForm1.Table1PostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].Errorcode = 9729 then
begin
MessageDlg('Unable to post: Duplicate ID.', mtWarning, [mbOK], 0);
Abort;
end;
end;



ضع هذا الكود في Table1PostError استبدل النص 'Unable to post: Duplicate ID.' بما تريد

لكن ماذا عن جداول absulate

الطريقة سهلة أيضا و الحمد لله :

procedure TForm1.ABSTable1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
if (E as EABSEngineError).Errorcode=-8 then
begin
MessageDlg('Enregistrement existe déja !', mtWarning, [mbOK], 0);
Abort;
end;
end;



بحثت عنها كثيرا و ها أنا أضعها لإخواني ليستفيدوا منها خصوصا أن رسالة خطأ absolute كبيرة و غير مفهومة للمستخدم العادي.
بالتوفيق.

kacemhk
29-11-2010, 09:07 AM
وإذا كان الرقم التسلسلي من نوع auto_increment فما هو الحل ؟ من فظلك ولكن ممكن طريقة برمجية إدخلها في برنامجي
لأنه إذا وقعت في هذا المشكل فلا يمكن لك أن تظيف أي معلومات إلى قاعدتك .
لأنه يوجد حل في الدخول في برنامج Database Desktop وهو تغيير نوع الأنداكس من نوع تلقائي إلى نوع integer ثم حفظ ثم إعادة فتح و إرجاع النوع كما كان فيزول المشكل .
فمن لديه الحل فليجد به
أردت استعمال dbidorestructure ولكن لم أفهمها جيدا وطريقة التعامل معها
وأردت استعمال tutil32.dll دون أن أحمل مع البرنامج ملفات أخرى وأيضا عدم معرفتي لهذه المكتبة