إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

ما الفرق بين ال Cursor وال For Loop


4 رد (ردود) على هذا الموضوع

#1 ERP

ERP

    عضو

  • الأعضــاء
  • 20 مشاركة

تاريخ المشاركة 07 July 2005 - 11:40 PM

السلام عليكم

هذا كود كتبه الأخ hanon_OCP في أحد المواضيع

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


أرد أن أعرف الفرق بينه وبين هذا الكود

BEGIN FOR REC IN (
SELECT EMPNO FROM EMP )
LOOP
RAISE_SAL(REC.EMPNO);
END LOOP;
END;


من ناحية ال Performance

وشكرا مقدما :D



#2 alaahiakal

alaahiakal

    مشترك

  • الأعضــاء
  • 131 مشاركة

تاريخ المشاركة 08 July 2005 - 05:15 PM

بختصار الcursor
يعمل عمل الloop و ايضا يسحب المتغيرات المطلوبه

ما for loop
بس يعمل تحريك اي دوران حتى يكمل او يمر على جميع المتغير المطلوب
Mr.CSS

#3 ERP

ERP

    عضو

  • الأعضــاء
  • 20 مشاركة

تاريخ المشاركة 09 July 2005 - 08:59 AM

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

لكن أريد أن أعرف الفرق من ناحية ال Performance

من الأفضل وليش ؟؟؟

#4 IGBSpeed

IGBSpeed

    عضو نشط

  • الأعضــاء
  • 253 مشاركة

تاريخ المشاركة 17 July 2005 - 05:23 PM

السلام عليكم ورحمةالله وبركاته :-
أخي الكريم .. هذا الرد على حسب علمي وفهمي للموضوع :
1- الـ (Cursor) يقوم بعمل إستعلام مرة واحدة لبيانات الجدول ووضعها في متغير ثم يقوم بفردها دون الحاجة إلى الذهاب إلى قاعدة البيانات كل مرة وإحضار البيانات .
2- الـ (Cursor) أقوى على مستوى العميل إذا إستخدمته في بيانات ثابتة أي لا تتغير كثيراً كفرد مثلاً أسماء الموظفين في مكان معين فإن الموظفين قليلاً ما يتم إضافتهم . "طبعاً المقصود في لحظة طلب البيانات إلى العميل إلى إنتهاء العميل من عملية فرد الأسماء هل من المتوقع أن يعمل أحد حفظ !!؟ " .
3- الـ (For Loop) هو أقوى في حالة أنه البيانات التي تطلبها يجب الذهاب ومراجعتها سجلاً سجلاً مع فردها عند العميل .. طبعا العميل يعني "Clint" وليس "Customer" .
--------------
هذا والله أعلم ..
إبراهيم بخش ،،، المدينة المنورة .
igb_igsb@hotmail.com

********

صفحتي على الفيس


#5 IGBSpeed

IGBSpeed

    عضو نشط

  • الأعضــاء
  • 253 مشاركة

تاريخ المشاركة 17 July 2005 - 05:26 PM

وأيضاً لا تنسى أنه الـ(Cursor) يمكن أن تستخدمه أكثر من مرة في نفس الشاشة لأنه محفوظ في متغير .
أو أكثر من مرة في نفس التعريف (Declare) .
----------------------
ارجو أن أكون قد وفقت بالشرح .
igb_igsb@hotmail.com

********

صفحتي على الفيس