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

how to make cursor

Featured Replies

بتاريخ:

الزملاء الاعضاء
السلام عليكم واعانكم الله في افادة الناس جميعاً
سؤالي هو عن كيفية بناء cursor اي اجزاؤه كاملة البداية والنهاية به
يفضل وضع مثال صغير كامل
مع جزيل الشكر للجميع

بتاريخ:

السلام عليكم
اولا الكيرسور هو عبارة عن جملة سيليكت يتم استخدامها في لغة plsql
و لذلك لعدة اغراض مثل اذا كنا نريد ان نقوم باكشن معين علي مجموعة من السجلات فنقوم بعمل كيرسور
و فتحه و القيام بمل نريد عليه
و يجب ان نعرف ان كل جملة سيليكت نقوم بها هي ايضا تفتح في كيرسور و لكنه كيرسور خاص باوراكل
و يسمي
implicit cursor
اما اذا قام المطور بكتابة كيرسور خاص به و التعامل معه فيمسي
explicit cursor
و يوجد الكثير من المعلومات و الطرق للتعامل مع الكيرسور ممكن لنا ان نعرف الاساسي منها الان
و لنأخذ مثلا مثال انك في برنامج شئون موظفين و تريد ان تزيد راتب الموظفين بناء علي معايير معينة وتوجد لديك هذه المعايير في بروسيدر تسمي raise_sal
للقيام بما نريده لا نستطيع استعمال السكول فقط لذلك لابد من استخدام ال plsql
سأكتب الكود ثم نشرحه

DECLARE  
CURSOR  EMP_CURSOR IS  
SELECT EMPNO FROM  EMP;
BEGIN  
FOR REC IN  EMP_CUR LOOP 
RAISE_SAL(REC.EMPNO);
END LOOP;
END;


من المثال السابق يتضح الاتي ان طالما الكيرسور هيرجع اكتر من ريكورد لذا يجب التعامل معه في لووب
اللوب المستخدم هنا هو اسهل و ابسط الانواع و هو الFOR LOOP وهو لا يحتاج ال ي تعريف المتغير الذي نقوم فيه باحضار الداتا من الكيرسور كما لا نضع شرط للخروج منه اذ انه يخرج عند انتهاء الداتا في الكيرسور
و يجب استعماله عندما نريد ان يتم معالجة كل السجلات التي توجد بالكيرسور
و اذا نظرنا الي الكود نجد ان اول خطة لاستعمال الكيرسور هي تعريفه في الجزء الخاص بالتعريف و تعريفه يكون كالتالي
باستخدام كلمة CURSOR ثم اسم الكيرسور ثم كلمة IS ثم جملة السيليكت و سيمي كولون في اخر الجملة ثم في الجزء التنفيذي من البلوك نقوم باستخدام الFOR LOOP لفتح الكيرسور و احتيار كل سجل و تطبيق البروسيدر عليه و عند الانتهاء من كل السجلات سينتهي اللوب و يتم غلق الكيرسور اوتوماتيكيا
و كيفية الاشارة الي الحقول التي تكون في الكيرسور تتم ب كتابة اسم المتغير في اللوب و هو هنا REC
ثم اسم الكولمن الموجود في السيليكت الخاصة بالكيرسور
كالاتي
REC.EMPNO
و اللوجيك الخاص بالكود هنا كالاتي
انه يفتح الكيرسور ثم يجيب اول ريكورد يطبق عليه البروسيدر ثم يري اللوب اذا كان هناك سجلات باقية في الكيرسور اذا كان هناك يجيب السجل اللي بعده و يطبق عليه البروسيدر و هكذا حتي تنتهي الداتا و اذا انتهت يغلق الكيرسور و ينتهي اللووب
ويوجد العديد من الاشياء الخاصة بالكيرسور و لكنها تحتاج الي كتب :D
بالتوفيق

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

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

اشكرك جزيل الشكر على الرد السريع والتوضيح, الان الصورة واضحة لدي
والله يوفقك لخدمة الامة

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

يمكنك اخى الاستفادة من هذا الملف

Cursors.doc

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

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

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

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

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

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.