الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

وضع الرسالة في text item

مغلق
بدأه الشاهين في 20 فبراير 2003 · 6 رد · 955 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

واجهتني مشكلة اعلم بانها سهلة ولكن تعبت وما لقيت الحل

عساء ان اجد الحل عندكم وشاكر لكم مقدماً

declare

x number;

a number;

cv varchar2(200);

begin

select numpa into a from master

where numpa=:vv;

if a=:vv then

go_block('master');

execute_query;

else

================== 

 ================

========================

end if;

end;
#2

السلام عليكم

الاخ الفاضل ممكن وضيح اكبر للمشكلة التي تواجهها حتى يمكننا مساعدتك ان شاء الله

#3

صديقي الشاهين :

يجب عليك توضيح المشكلة بالضبط وعليك الانتباه لأنماط الحقول التي تسندها للمتحولات .وعليك أن تنتبه للتريغر هل يدعم عملية EXECUTE_QUERY على كل حال وضح لنا وسنحاول مساعدتك أن شاء الله

#4

ان افصل طريقة لحل المشكلة في الكود السابق هي استخدام دالةcount بالشكل التالي

declare

x number;

a number;

cv varchar2(200);

begin

select count(numpa) into a from master

where numpa=:vv;

if a>0 then

go_block('master');

execute_query;

else

================== 

 ================

========================

end if;

end;
#5

اولاً اسمحولي ان اتقدم بالشكر لكم جميعاً

واوضح السئوال وهو على النحو التالي

اوريد ان استخدم رسائل التنبية مثلا في تكست ايتم بدل من استخدام

alertاو غيرها ...............

ولتوضيح اكثر مثلاً ( الرقم المطلوب غير صحيح)

ولكنها في تكست ايتم........ووالله ماعاد اقدر اوضح اكثر من كذا

دعائي الصادق(( الله لايحرمني منكم))))))))

#6

صديقي شاهين :

حسب ما فهمت منك أنك تريد الكتابة داخل TEXT_ITEM رسائل للمستخدم . طبعاً سنتفق أنا وإياك على جملة أمور قبل أن ننطلق

1- لا أستطيع أن أرجع قيمة من الرسالة كما هي الحال في ALERT .أي بمعتى آخر سوف أظهر الرسالة كإظهار فقط.

2- لقد جربت من قبلك أن أكتب في TEXT_ITEM من خلال خصائصه ولم أنجح لكن أستطيع التحايل عليه والكتابة فيه من خلال جدول مربوط معه وأعدل على هذا الجدول كلما شئت فيظهر لي التعديل كلما شئت .

سوف أعطيك مثال بسيط وأرجو أن يكون مفيد لك :

لننشئ جدول باسم MESSAGE وفيه حقل واحد فقط وهو TEXT_MESSAGE على الشكل التالي :

CREATE TABLE MESSAGE (TEXT_MESSAGE VARCHAR2(200));

ثم أدرج حقل وليكن :

INSERT INTO MESSAGE(TEXT_MESSAGE)VALUES('TEST');

الان أستطيع الذهاب إلى الفورم وأنشئ بلوك مرتبط مع هذا الجدول ولدي TEXT_ITEM واحد يمثل حقل TEXT_MESSAGE في الجدول MESSAGE :

فلننشئ زر للتجربة ونكتب داخل التريغر WHEN-BUTTON-PRESSED :الكود التالي .

DECLARE
	VAR_MESSAGE VARCHAR2(200);

BEGIN 
:SYSTEM.MESSAGE_LEVEL := '25';
			EXECUTE_QUERY;

	VAR_MESSAGE := 'MAYBE THIS IS TRUE WAY  ';
		UPDATE MESSAGE 
			SET TEXT_MESSAGE = VAR_MESSAGE;
		EXECUTE_QUERY;
	COMMIT;
:SYSTEM.MESSAGE_LEVEL := '0';

END ;

بعون الله سوف يعمل معك وأستطيع أن أغير الرسالة من تغيير المتحول VAR_MESSAGE :لاحظ تغير القيمة كلما غيرت قيمة المتحول

3- طبعاً أنا لست محدود بهذا الشكل فأنا أستطيع أن أعمل جدول فيه عدة رسائل وعند حدوث استثناء معين استدعي رسالة معينة كنت قد خزنتها مسبقاُ في الجدول بواسطة حقل لرقم الرسالة وليكن ID.

مثال :

if condtion then 
SELECT INTO :TEXT_MESSAGE FROM MESSAGE
WHERE ID = 5;

4-طبعاً هذا نموذج تجريبي مستقل عن تريغير معين أو استثناء فهذا راجع إليك تقديره .

في النهاية أرجو أن أكون قد فهمت ما تريد بالضبط وأكون قد أفدتك جرب وقلي مالنتيجة التي وصلت لها .

صديقك ثائر ...!!

#7

استاذ ثائر

شكراً لك ولكن هل بلامكان شرح الكود الثالث فيما يخص الفورم

وعلى كل حال اشكر لك على هذا الرد الجميل

يا اخي الغالي

هذا الموضوع مغلق.

مواضيع مشابهة