بتاريخ: 1 مارس 200818 سنة comment_123656 السلام عليكم ورحمة اللهفي مستوى ال 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 هايطبق فيه ولا ايه؟ارجو ان يكون سؤالي مفهوم تم تعديل 1 مارس 200818 سنة بواسطة gero تقديم بلاغ
بتاريخ: 1 مارس 200818 سنة comment_123658 بص ياباشا فى حالآ 1- فى فى ال forms حاجه اسمها program unit دى ممكن تكتب فيها اى كود pl 2- ممكن تنشاء من ال sql plus و تستتدعى الالاجراء او اى حاجه من الforms ايهاب وجدى تقديم بلاغ
بتاريخ: 3 مارس 200818 سنة كاتب الموضوع comment_123846 شكرا ياأخ ايهاب على الجواب طب لو انا عملت المثال اللي فوق ده في ال sql plus وعايز الحواب اللي هوا ال sal ده يظهر في text item في الفورم بالمثال اللي انا كتبه ده ماعتقدش انه هايطلع في الفورم تقديم بلاغ
بتاريخ: 4 مارس 200818 سنة comment_123859 شكرا ياأخ ايهاب على الجواب طب لو انا عملت المثال اللي فوق ده في ال 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,'رسالة الخطأ'); شكراً تقديم بلاغ
بتاريخ: 4 مارس 200818 سنة كاتب الموضوع comment_123907 شكرا يااخ mma بس انا في الحالة دي مش عايز اعمل fire لerror انا عايز اطلع نتيجة ال sal في الفورم ولو في text item جوه الفورمممكن اظبطها جوه البروسيدر نفسه؟ تقديم بلاغ
بتاريخ: 5 مارس 200818 سنة comment_123934 شكرا يااخ 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); بالتوفيق تقديم بلاغ
بتاريخ: 5 مارس 200818 سنة كاتب الموضوع comment_123947 شكرا جز يلا لك يأخ mma على هذا الشرح الوافي وجعله الله في ميزان حسناتك تقديم بلاغ
بتاريخ: 5 مارس 200818 سنة comment_123957 الأخ MMA الشكر الجزيل لك على هذا الشرح الوافيوفيت و كفيت وفيك الخير ان شاء اللهوإلى الامام تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.