إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

معالجة الأخطاء


2 رد (ردود) على هذا الموضوع

#1 gida

gida

    عضو

  • الأعضــاء
  • 29 مشاركة

تاريخ المشاركة 16 May 2005 - 12:13 PM

أريد عمل libaray
حيث يتم استخدامها بكل البرامج وتعمل علي معالجة الأخطاء التي تنتج ويكون اظهار الرسالة بالنص العربي حتي يتمكن المستخدم من معرفة وفهم الخطأ بدلا من اخطاء الform
المعتادة التي تكون غير مفهومة من قبل المستخدم لاستخدامها مصطلحات باللغة الانجليزية ولا تفهم وارجو ان تكون شاملة لأخطاء ال form التي تبدأ ب frm_
و أخطاء التي تبدأ ب ora_
وشكرا مسبقا للمساعدة وارجو الرد سريعا للحاجة.

#2 IGBSpeed

IGBSpeed

    عضو نشط

  • الأعضــاء
  • 253 مشاركة

تاريخ المشاركة 20 May 2005 - 10:43 AM

أخي العزيز أرجوا نقل هذا الموضوع إلى منتدى الفورم لأنه الأنسب أما بالنسبة لإنشاء library فأنا أيضاً أستحث الأخوة بالمنتدى بإيضاح طريقة إنشاءه أما بالنسبة لرسائل الأخطاء فيوجد لديك نوعين إما رسائل MESSAGE أو رسائل ERROR وتضيف أحد التراجرين في WHEN-NEW-FORM-INSTRANT مثلاً ON-ERROR وتكتب
DECLARE
ERRONO ERROR_CODE;
ERROTX ERROR_TEXT;
ERROTP ERROR_TYPE ;
BEGIN IF ERRONO = 40500 THEN
MESSAGE ("تمت عملية الحفظ بنجاح");
MESSAGE ("تمت عملية الحفظ بنجاح");
ELSE
MESSAGE (ERROTP||'-'||ERRONO||' :'||ERROTX);
END IF;
END;


طبعاً على فرض أنه رقم رسالة إتمام عملية الحفظ هي 40500 لأني ناسي رقمها الآن
-----------------------------------------
إبراهيم بخش- المدينة المنورة
igb_igsb@hotmail.com

********

صفحتي على الفيس


#3 kzaghloul

kzaghloul

    مشترك

  • الأعضــاء
  • 118 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 24 May 2005 - 08:05 AM

السلام عليكم
لإظهار الرسائل باللغة العربية يجب عمل ذلك بإضافة جدول يمكن تسميته MESSAGES كما يلي :
CREATE TABLE MESSAGES
( MESSAGE_CODE NUMBER(6) NOT NULL,
ENGLISH_TEXT VARCHAR2(80 BYTE) NOT NULL,
ARABIC_TEXT VARCHAR2(80 BYTE));
CREATE UNIQUE INDEX MEE_PK ON MESSAGES(MESSAGE_CODE);
ALTER TABLE MESSAGES ADD (CONSTRAINT MEE_PK PRIMARY KEY(MESSAGE_CODE));
وهو سوف يحوي الأخطاء باللغتين العربية والانكليزية, بعد تعبئته بالأخطاء ومعانيها أو شرحها يمكن عمل PROCEDURE كما يلي :
PROCEDURE SHOW_MESSAGE(P_MESSAGE_CODE NUMBER) IS
CURSOR C1 IS SELECT * FROM MESSAGES WHERE MESSAGE_CODE=P_MESSAGE_CODE;
REC C1%ROWTYPE;
X NUMBER;
BEGIN
OPEN C1;
FETCH C1 INTO REC;
IF C1%NOTFOUND THEN
MESSAGE(P_MESSAGE_CODE||' '||'Please, Add the new message to the database');
MESSAGE(P_MESSAGE_CODE||' '||'Please, Add the new message to the database');
ELSE
IF REC.ARABIC_TEXT IS NOT NULL THEN
MESSAGE(rec.message_code||'...'||REC.ARABIC_TEXT);
MESSAGE(rec.message_code||'...'||REC.ARABIC_TEXT);
ELSE
MESSAGE(rec.message_code||'...'||REC.ENGLISH_TEXT);
MESSAGE(rec.message_code||'...'||REC.ENGLISH_TEXT);
END IF;
END IF;
END;

ويمكن وضعه إما في LIBRARY ومن ثم ربطها مع الفورم أو إضافته إلى قائمة PROGRAM UNITS في الفورم
وبعدها وعلى مستوى ال TRIGGERS في الفورم :
ON THE FORM TRIGGERS LEVEL PUT THE :
ON-MESSAGE :
SHOW_MESSAGE(MESSAGE_CODE);

ON-ERROR :
if error_code in (40508,40509,40510) and error_type= 'FRM' THEN
message(to_char(dbms_error_code)||': '||dbms_ERROR_TEXT);
message(to_char(dbms_error_code)||': '||dbms_ERROR_TEXT);
ELSE
SHOW_MESSAGE(ERROR_CODE);
END IF;

أرجو أن تستفيدوا من هذه الآلية ودمتم.
ودمتم ذخرا لهذه الأمة
---------------------------------------------
أخوكم في الله KHALED ZAGHLOUL
PROGRAMMER AND SYSTEM ANALYST
KZAGHLOUL@YAHOO.COM