الانتقال إلى المحتوى
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.

استدعاء ال procedure

Featured Replies

بتاريخ:

السلام عليكم
مشكلتي في استدعاء ال procedure طبعا انا عملت ال procedure من ال sql اي stored program unit داخل ال data base ولما اعملة تنفيد من داخل ال sql يعمل بشكل صحيح ومن هنا تأكدت
ان ال procedure يمشي صحيح في التنفيد
ولكن عندما انشأت form وعملت button داخل ال block وعملت trigger (when button press واستدعيت داخلة ال procedure بدون begin و end وعنما نفدت وضغطت ال button لم يعمل اي شي
وعنما عملت begin وكتبت اسم ال procedure ومن ثم كتبت end و عند التنفيد قمت بالضغط على ال button يوقف البرنامج ويكون في حالة ال not responding ومن ثم اعمل ctr+alt+del للخروج
المهم كيف اقدر استدعي ال procedure داخل ال form سواء بأستدعاء parameter او بدون parameter
ارجوا الافادة بسرعة جزاكم اللة خير

بتاريخ:

لكي تقومي باستدعا بروسيجر من الفورم يجب ان يكون داخل وحدات البرامج Program Unit والتى تجدينها في Object Navigator في الاوركل فورم ،،

بتاريخ:

السلام عليكم
عفوا أخي أبو صالح
ولكن الفورمز يبحث أولا عن procedure في ال progaram unit
ثم في ال pl liberary ثم بعد ذلك في الداتا بيز
فأعتقد إذن أنه يظهر مع database objects في ال object navigator
ولكني لم أجرب من قبل استدعاء بروسيدجر من الداتا بيز
والله أعلم

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

بتاريخ:

شكرا اخي محمد على المعلومة ،، بس بصراحة انا ماجربتها قبل كذه


وشكرا ،،

بتاريخ:

العفو أخي أبو صالح
أنت أستاذنا

الأخت سيبيانية
قمت بتجربة استدعاء procedure من الداتا بيز ، وبدون كلمتي begin و end وبدون اي مشكلات
أرجو التوضيح أكثر من الأخت سيبيانية

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

السلام عليكم
انا لم اكون ال procedure داخل ال program unit في ال nivegator ولكن من ال sql
بالنسبة لل begin و end اي لما استدعيت ال procedure داخل ال form عن طريق trigger when button press ولكن للاسف لم يعمل ال procedure
بهذة الطريقة ولكن لما استدعية وانفدة داخل ال sql بعمل بشكل صحيح
ارجوا وضحت الفكرة يشكل صحيح

بتاريخ:

عند عمل procedure في الداتا بيز ، اي من خلال ال isql*plus
يمكن مشاهدة هذا procedure في object navigator عن طريق
database object>program units
في حالة إنشاء procedure فإنه يظهر لنا في ال object navigator
في الغالب المشكلة في ال arguments أو ال parameters التي نعطيها له في أثناء تجربة الفورم نفسها
هل من الممكن وضع الفورم هنا مع نص ال procedure لعلي أستطيع المساعدة ؟
وشكرا

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

السلام عليكم
اسفة لم استطع ادراج الفورم مع ال procedure بسبب مشاكل في الكمبيوتر, ممكن اوضحلك كالتالي:

طبعا لدي عدة procedure جميعهم تستدعي parameter وواحد فقط لايستدعي اي انة ينفذ بدون ادخال متغير
طيب انا جربتهم كلهم اي نفدتهم من sql فعملوا بشكل صحيح
ولكن حاولت التنفيد من داخل ال form فعملت التجربة اولا على transf_close وهو اسم ال procedure وهو الprocedure الوحيدالذي يستدعى بدون parameter لاني قلت يمكن يكون المشكلة في ال parameter فكونت form وعملت داخلة button واحد بحيث اذا ضغطت ال button يقوم بتنفيد ال procedure والعملية كالتالي:
when button press وهو اسم ال trigger كتبت اسم ال procedure كالتالي:
transf_close;
وبهذا الطريقة قمت بتنفيد ال form وعندما ضغطت على button وخرجت من التنفيد وذهبت الى الجدول الذي سوف يتغير عند استدعاء الprocedure ولكن لم ارى اي تغيير في الجدول وكأن استدعاء ال procedure في ال form لايعمل اي شي
عفوا على الاطالة
وارجوا الافادة

بتاريخ:

السلام عليكم
لايوجد مشكلة سواء كان ال procedure معه متغير او بدون
ولقد قمت بتجربة النوعين وهذه هو الكود الموضوع في الداتا بيز
(1)
create or replace procedure raise_sal
is
begin
update emp
set sal =sal+10000;
end raise_sal;


(2)
create or replace procedure update_sal
(p_empno in number)
is
begin
update emp
set sal =sal+50000
where empno=p_empno;
end update_sal;

وهذه هي الفورم المطبق عليها الكود
أرجو ان تكون ذات فائدة
وفي انتظار الرد

procedure.fmb

بتاريخ:

السلام عليكم

أرجو يا أختي أن تضعي على الأقل نص البروسيجر . و سنجربه ، و ان شاء الله نتوصل لحل.

كما أنوه أنه ربما نسيت أن تضعي جملة
commit

و السلام عليكم

بتاريخ:

السلام عليكم
أخي الراية
من الواضح انني الذي نسيت وضع كلمة commit
لأن التغيير الذي يتم من خلال الprocedure لا يعتبره الفورم تغييرا يتوجب عليه حفظة
أعتذر عن هذا الخطأ

شكرا على المعلومة أخي الراية

Mohamed OCP

بتاريخ:

العفو أخي محمد ، جل من لا يسهو .

على فكرة لم أنتبه لردك بالأمثلة إلا بعد أن كتبت ردي الذي أذكر به ب commit ، لأني أتوقع أن هذه هي مشكلة الأخت.

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

السلام عليكم
شكرا على الرد واخبركم انني مثلكم اكتشفت ان المشكلة في commit ولما عملتها تنفد ال procedure والحمدللة
وشكرا مرة ثانية وجزاكم اللة خير

بتاريخ:

السلام عليكم
الشكر كله يوجه للأخ الراية
شكرا مرة أخرى على الملاحظة

Mohamed OCP

  • بعد 5 سنة...
بتاريخ:
السلام عليكم
لايوجد مشكلة سواء كان ال procedure معه متغير او بدون
ولقد قمت بتجربة النوعين وهذه هو الكود الموضوع في الداتا بيز
(1)
create or replace procedure raise_sal
is
begin
update emp
set sal =sal+10000;
end raise_sal;


(2)
create or replace procedure update_sal
(p_empno in number)
is
begin
update emp
set sal =sal+50000
where empno=p_empno;
end update_sal;

وهذه هي الفورم المطبق عليها الكود
أرجو ان تكون ذات فائدة
وفي انتظار الرد


اخي جزاك الله خيرا ع المعلومة أنا أيضا عندي مثل مشكلة الخت ولني أردت تحميل الملف المرفق ولكن هناك خطأ أثناء التحميل فأرجو ان تضع الملف مرة اخرى

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

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

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

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

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

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.