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

ممكن شرح CURSOR

Featured Replies

بتاريخ:

ماهو الـ CURSOR
الكل يعلم اهمية الـ PL/SQL في البرمجه في الـ FORM


ممكن يا اخوانى المساعده

بتاريخ:

الاخ salama11433
بالنسبة لل CURSOR عندما يكون لديك جملة select تقوم ب ارجاع اكثر من قيمة
هنا لابد لك ان تقوم بفتح كيرسور خارجي و اعتقد ان هذا النوع الذي تسأل عنه
في البداية يجب ان تقوم بتعريف الكيرسور بكتابة اسمه و جملة ال سيلكت التي يقوم بارجاع القيم بناء عليها
وهذا يكون في جزء ال declare
بعد ال begin تقوم بفتح الكيرسور وهذا كي تستطيع استخدامه
ثم تقوم بعمل fetch اي الاخذ من هذا الكيرسور
ولابد من القيام بهذه العملية في loop غالبا
وتقوم بوضع شرط خروج من ال loop ثم تغلق الكيرسور
هذا من ناحية الكود
فكرتة انه عندما تريد استرجاع اكثر من صف يقوم الكيرسور بفتح مساحه في الرام
ويوقم بوضع عدد الصفوف المسترجعه
و في حالة الاخذ منه يقوم باسترجاع الصف الاول ثم الذي يليه و هكذا
ويمكنك الاستغناء عن اغلب اجزاء الكيرسور في النوع for loop
مثال مستخدم بكثرة في الفورمز هوا عند وجو list تقوم بملاء بياناتها اثناء الرن تايم
اي ان البيانات ليست ثابتة ولكن نقوم باستدعائها من الداتا بيز مباشرة اثناء التشغيل
نقوم بكتابة هذا الكود البسيط في تريجر هون نيو فورم انستانس

]
for i in (select id,name from emp) loop
add_list_element('emp_name',1,i.id,i.name);
end loop;
[
هذا معناه اني اقول للاوراكل افتح جدول الموظفين و قم ب احضار اسمائهم و ارقامهم
و لكل صف تجده قم باضافة الرقم كقيمة لل LIST و الاسم ك كاسم اظهار
هذا مثال بسيط اتمني ان اكون قد اوضحت بعض معالم الكيرسور في عجالة
اذا اردت معلومات شامله عنه ستجد ان شاء الله شرح له قريب ولكن سؤالك هذا مكانه منتدي ال pl/sql وليس الفورمز
ولكني اجبت عن الجزء الخاص به من ناحية الفورمز
تمنياتي بالتوفيق

تم تعديل بواسطة black&white

بتاريخ:

بسم الله الرحمن الرحيم
تحية طيبة وبعد

في البداية اشكر اخي العزيز black&white على هذا التوضيح

وحبيت ان اضيف انه يوجد طريقة اخرى لعمل CURSOR وهي كالتالي:

declare
   cursor primary_cur is select 'x' from SCOTT.DEPT
       where DEPTNO = :EMP.DEPTNO;
   primary_dummy  char(1);
begin
   if ( ( :EMP.DEPTNO is not null ) ) then
       open primary_cur;
       fetch primary_cur into primary_dummy;
       if ( not primary_cur%found ) then
          message('Foreign key value does not currently exist in the primary key table.');
          close primary_cur;
          raise form_trigger_failure;
       end if;
       close primary_cur;
   end if;
end;



ولا شك فيه ان اي من الطريقتين لا تغني عن الاخرى فلكل طريقة لها استخداماتها

مع تحياتي..

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

ممكن مزيد من الشرح
انا مش فهم كويس
؟

بتاريخ:

سيفيدك الـ Cursor لو بدات فى انشاء فورم للبحث و التى ترجع المزيد من القيم فى عماية البحث
مثلا لو تبحث عن الموطفين الذين اول حرف من اسمهم (أ) يوجد الكثير
اى استفسار متعدد القيم يجب عمل له Cursor
اتمنى ان تكون قد وصلت

بتاريخ:

فقط تكملة لما ذكره الأخوة :

تستخدم الأوراكل مساحة عمل في الذاكرة لتنفيذ جمل وإستعلامات الــــ SQL وحفظ نتائج هذه الإستعلامات ، وهنا تأتي فائدة الكيرسر حسب مفهوم الأوراكل حيث تسمح الكيرسر بتسمية مساحة العمل هذه وبالتالي يمكن الدخول على المعلومات الموجودة والتعامل معها
كبيانات مخزنة مؤقتا في الذاكرة وهناك نوعين من الكيرسر ضمنية implicit و صريحة explicit ،وتقوم الأوراكل عادة بعمل DECLARE لكيرسر من النوع الأول implicit لجميع جمل الــ SQL التي تسترجع صف واحد !!! أما الجمل التي تسترجع أكثر من صف فنحتاج لعمل او لتعريف explicit cursor كما ذكر الأخوان في الأمثلة السابقة ..

تحياتي :)

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

شكرا يا اخى وجزاك الله خيرا

بتاريخ:

لمزيد من التفاصيل حول الـ Cursor راجع قسم الدروس في الـPL/SQL

خالد العوبثاني

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

شكرا يا اخى

  • بعد 7 شهور...
بتاريخ:

بسم الله الرحمن الرحيم


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

open.doc

  • بعد 4 أسابيع...
بتاريخ:

جزاكم الله خير على المجهود الطيب

بتاريخ:

يمكن اخى الكريم ان تقرأ الملف المرفق
مع تحياتى
اسامه سليمان

cursor.doc

  • بعد 4 سنة...
بتاريخ:

اتفضل يا سلامه

وصدقني مش ح تسأل بعد كدا عن الموضوع دا خالص . بس في حاجه اسمها refcursor هي الوحيده الي ما اتكلمت عنها في الموضوع دا

بس ان شاء الله راح اكتب عنها

http://www.araboug.org/ib/index.php?showtopic=32835

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

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

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

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

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

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.