الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في الإجراءات المخزنة

بدأه kathy في 22 فبراير 2008 · 1 رد · 741 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي إجراء مخزن استخدم فيه CURSOR كالتالي

DECLARE Product_Id_Cursor CURSOR FOR 
 SELECT   Product_Id FROM Product 
  open Product_Id_Cursor 
  --
  FETCH NEXT FROM Product_Id_Cursor into  @Product_Id
  WHILE @@FETCH_STATUS = 0 
  BEGIN 
   select  * from emplyee where id=@Product_Id
   FETCH NEXT FROM Product_Id_Cursor into  @Product_Id
  END
  --
  CLOSE Product_Id_Cursor
  DEALLOCATE Product_Id_Cursor

أردت الأن في جملة

 SELECT   Product_Id FROM Product

أن أضيف شرط ولكن هذا الشرط متغيير حيث أقوم بإرسالة من البرنامج في المتغيير

@str

ويحمل قيمة مثلا

where Product_Id in(1,2,3)

كيف يمكن أن أضيف هذا الشرط المتغيير لجملة select في CURSOR ???

شكرا

#2

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

يجب تعريف المتغير المراد استخدامه في الاجراء المخزن خارج ال Cursor

Declare @Product_id int
DECLARE Product_Id_Cursor CURSOR FOR 
SELECT   Product_Id FROM Product where product_id = @product_id
  open Product_Id_Cursor 
  --
  FETCH NEXT FROM Product_Id_Cursor into  @Product_Id
  WHILE @@FETCH_STATUS = 0 
  BEGIN select  * from emplyee where id=@Product_Id
   FETCH NEXT FROM Product_Id_Cursor into  @Product_Id
  END
  --
  CLOSE Product_Id_Cursor
  DEALLOCATE Product_Id_Cursor

تم تعديل هذه المشاركة بواسطة walcom في 29 فبراير 2008 في 12:23 — السبب: ضع الأكواد بين العلامات [code][/code] أو [sql][/sql]

مواضيع مشابهة