delphi4arab منتديات دلفي للعرب

نسخة كاملة : معالجة الاخطاء
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
في جدول البينات retraite.db(table5) قمت بجعل N_ret هو الانديكس للجدول
وفي form7 عند اضافة شخص جديد برقم N_ret موجود لدى شخص اخر فان الرسالة التالية تظهر عند التنفيذ :violation de clé . والتي لاتختفي الا بفلق البرنامج ثم فتحه مرة ثانية.
اظن ان معناها واضح لكن كيف التخلص من هذا المشكل بواسطة رسالة تظهر للمستخدم تخبره بوجود شخص اخر مسجل بهذا الرقم.
حاولت بالتعليمة try....except لكن لم تنجح.
المشروع بالمرفقات وانا بانتظار ردودكم القيمة وشكرا.
استعمل شرط مع الدالة FindKey

....if FindKey[Edit1.Text] then
السلام عليكم

يمكن ايضا :
فى حدث PostError للجدول الخامس
PHP كود :
procedure Tdm.Table5PostError(DataSet: TDataSet; E: EDatabaseError;
  var 
Action: TDataAction);
begin
  Action 
:= daAbort;
  
DataSet.Cancel;
  {
يجب معرفة نوع الخطاء لارسال رسالة على اساس ذالك الخطاء}
  
ShowMessage('??? <E: EDatabaseError> ???');
end; 
جربت الكود لكن لم ينفع. هل من طريقة اخرى
با رك الله فيكم
انا لا يحدث عندى اى مشكل
ارفقت لك ملفين هما
كود :
Unit3(*.pas, *.dfm)
قم بوضعهما فى مجلد CS (اسبدلهما بالملفين الموجودين مسبقا)
بارك الله فيك
صحيح صار لايدخل شخص برقم شخص اخر لكن الرسالة لاخبار المستخدم لاتظهر
ومشكوور مرة اخرى
السلام عليكم

رقم الخطاء فى هذه الحالة هو "9729"
لارسال رسالة على اساس هذا الخطاء نضيف مايلى :
كود :
if (E as EDBEngineError).Errors[0].ErrorCode = 9729 then ShowMessage(' ... ');

للاطلاع على ارقام الاخطاء هنا
يوجد مثال مرفق مع الدالفى يوضح هذه العمليات .