الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

سؤال حول الربط بين مستوى الpl/sql ومستوى الform

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله
في مستوى ال pl/sql انشأت ال procedure في الsql plus حول مثلا

create or replace procedure g is
sal number;
begin
select max(salary) into sal from emp;
dbms_output.put_line(sal);
end;


وذلك على سبيل المثال بالاضافة الى اي حاجة عايز انشأها من procedure ,trigger,function
كيف استغل اللي انا عملته دا في الفورم
يعني مثلا اعمل when button pressed واكتب جواه g; وهايتنفذ؟
ولا اكتب اللي انا عايزه في الفورم واحفظه ولما يروح لل database اللي انا أنشأته في الsql plus هايطبق فيه ولا ايه؟
ارجو ان يكون سؤالي مفهوم

تم تعديل بواسطة gero

بتاريخ:

بص ياباشا فى حالآ
1- فى فى ال forms حاجه اسمها program unit دى ممكن تكتب فيها اى كود pl
2- ممكن تنشاء من ال sql plus و تستتدعى الالاجراء او اى حاجه من الforms

ايهاب وجدى

بتاريخ:
  • كاتب الموضوع

شكرا ياأخ ايهاب على الجواب
طب لو انا عملت المثال اللي فوق ده في ال sql plus وعايز الحواب اللي هوا ال sal ده يظهر في text item في الفورم
بالمثال اللي انا كتبه ده ماعتقدش انه هايطلع في الفورم

بتاريخ:
شكرا ياأخ ايهاب على الجواب
طب لو انا عملت المثال اللي فوق ده في ال sql plus وعايز الحواب اللي هوا ال sal ده يظهر في text item في الفورم
بالمثال اللي انا كتبه ده ماعتقدش انه هايطلع في الفورم



لو لاحظة أخي أن الأمر dbms_output.put_line لا يعمل إلا بعد إرسال قيمة Set OutputServer On بمنفذ جمل الإستعلامات SQL*Plus ، حيث لأن هذا الأمر يستخدم في عرض رسائل مبدئية ، ولكن إذا أحببت أن تعرض رسائل في التطبيقات Application يجب عليك إستخدام

-- Raise_Application_Error(Err_Number,Err_Description);

Raise_Application_Error(-20000,'رسالة الخطأ');



شكراً

بتاريخ:
  • كاتب الموضوع

شكرا يااخ mma بس انا في الحالة دي مش عايز اعمل fire لerror انا عايز اطلع نتيجة ال sal في الفورم ولو في text item جوه الفورم

ممكن اظبطها جوه البروسيدر نفسه؟

بتاريخ:
شكرا يااخ mma بس انا في الحالة دي مش عايز اعمل fire لerror انا عايز اطلع نتيجة ال sal في الفورم ولو في text item جوه الفورم

ممكن اظبطها جوه البروسيدر نفسه؟


يبقي في هذه الحالة إما أن تقوم بإدراج باراميتر إضافي Out يرتجع لك القيمة ثم إستقبالها من داخل النموذج ، أنظر المثال التالي الذي يرتجع إسم الموظف بنائاً علي شرط معين :

Create Or Replace Procedure Sel_Emp(ID_Serial In Number,ID_Name Out VarChar2)
As
Begin
  Select Emp_Name
  Into ID_Name
  From Emp
  Where Emp_ID = ID_Serial;
End;
/



ثم تستدعي هذا الإجراء المخزن داخل قاعدة البيانات كما يلي :
1- أنشاً زر أمر Button .
2- أكتب الكود التالي بداخلة :

Declare
  ID_Name   VarChar2(50);
Begin
 Sel_Emp(5,ID_Name);
 :Text_Item1 := Emp_Name;
End;



-------------------------------------------------------------------------

أما الطريقة الثانية فهي الأسهل وهو بناء Function بحيث أن تستقبل القيمة مباشرتاً كما يلي :

Create Or Replace Function Sel_Emp(ID_Serial In Number) Return VarChar2
As
  ID_Name   VarChar2(50);
Begin
  Select Emp_Name Into ID_Name From Emp Where Emp_ID = ID_Serial;
  Return ID_Name;
End;



ومن ثم يتم إستدعائة كما يلي :
أنشأ زر أمر وأكتب بداخلة الكود التالي :

:Text_Item1 := Sel_Emp(5);



بالتوفيق

بتاريخ:
  • كاتب الموضوع

شكرا جز يلا لك يأخ mma على هذا الشرح الوافي وجعله الله في ميزان حسناتك
<_<

بتاريخ:

الأخ MMA


الشكر الجزيل لك على هذا الشرح الوافي
وفيت و كفيت
وفيك الخير ان شاء الله

وإلى الامام :rolleyes:

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.