بتاريخ: 4 مارس 200818 سنة comment_123860 إخواني الكرام ، تحية طيبة وبعد ،في الحقيقة أنا أقوم بصناعة إجراء داخل حزمة تقوم بإستقبال قيمتين IN الأولي لتحديد الرقم الأول للموظف ، والثانية لتحديد الرقم الأخير للموظف بحيث أن أرتجع مجموعة من السجلات ما بين مجموعة من الموظفين ، وفي نفس الوقت أنشأ باراميتر آخر من نوع Out يرتجع قيم المخرجات في Ref Cursor كما يلي : Create Or Replace Package PKG As Type Ref_Emp Is Ref Cursor; Procedure List_Emp(ID_Start In Number,ID_End In Number,O_Emp Out Ref_Emp); End; / Create Or Replace Package Body PKG As Procedure List_Emp(ID_Start In Number,ID_End In Number,O_Emp Out Ref_Emp) Is Begin Open O_Emp For Select * From Emp Where Emp_ID Between ID_Start And ID_End; End; End; / الإجراء List_Emp موجود داخل حزمة PKG ، كنت أستدعي هذا الإجراء كما يلي : Variable O_Emp RefCursor; Execute PKG.List_Emp(15,20,_Emp); Print O_Emp; بإختصار ، كيف يمكنني الإستفادة من هذا الإجراء داخل النموذج أو التقرير كحدٍ سواء ؟؟؟علي فكرة ، أنا حتي الآن أتعامل مع الـ DataBlock من نوع Table أو From Query ، لكنني لم أتمكن من التعامل مع الـ Procedureشكراً وأتمني مساعدتكموالله الموفق تقديم بلاغ
بتاريخ: 4 مارس 200818 سنة comment_123903 ردا على اخى الفاضل .. لقد قمت مسبقا بالرد على الأخ hobaa فيما يخص موضوع مشابة على استخدام Package من خلالها نقوم بعمل table for rec و نسخدمة على فورمة .. و قام الأخ hobaa بنشرة على لسانى .. من فضلك قم بالرجوع للخلف و على ما اعتقد كان اسم الموضوع ( المكنة طلعت قماش ) لأن من الواضح ان الموضوع خد منة وقت كتير .... بالتوفيق تقديم بلاغ
بتاريخ: 5 مارس 200818 سنة كاتب الموضوع comment_123931 ردا على اخى الفاضل .. لقد قمت مسبقا بالرد على الأخ hobaa فيما يخص موضوع مشابة على استخدام Package من خلالها نقوم بعمل table for rec و نسخدمة على فورمة .. و قام الأخ hobaa بنشرة على لسانى .. من فضلك قم بالرجوع للخلف و على ما اعتقد كان اسم الموضوع ( المكنة طلعت قماش ) لأن من الواضح ان الموضوع خد منة وقت كتير .... بالتوفيق هل هذا يعقل ، أستجيب لإحدي الأصدقاء بالمنتدي ثم أعود أسأل نفس السؤال !!!!أخي الكريم ، أنا أستجبت في قسم الـ PL/SQL ولكن نحن الآن في قسم الـ Forms ، بمعني أدق أن الأمر يختف !!!بإختصار يا أخي ، مشكلتي مع متغير الإخراج كيف يتم صناعتة داخل النموذج !!!بمعني أدق ، أنا صنعت الـ Pakcage وبداخلة إجراء يرتجع جدول من نوع Ref Cursor وذلك داخل قاعدة البيانات DataBase !!!من الطبيعي عند إستدعاء أي إجراء من قاعدة البيانات يتم إستخدام الكود التالي : Declare N1 Number; N2 Number; CalcRes Number; Begin N1 := :Text_Item1; N2 := :Text_Item2; Calc(N1,N2,CalcRes); :Text_Item3 := CalcRes; End; حيث أن الكود السابق يستدعي إجراء عادي وهو الإجراء Calc فأنا الحمد لله أعلم كيفية إستدعائة بالكود ولكن لا أعلم كيف أربطة ربط مباشر من الـ DataBlock في الوضع الحالي !!!لكن المشكلة في الـ Ref Cursor يجب أن أنشأ متغير من نوع RefCursor كما يلي : Variable O_Emp RefCursor; Execute PKG.List_Emp(5,10,_Emp); ولكن أخي هذا كل ما يحدث من داخل قاعدة البيانات ، ولكن كيف يتم من داخل النموذج !!!فحينما صنعت متغير من نوع RefCursor لم يقبل !!!إذاً ، مشكلتي الآن متعلقة بكيفية صناعة مثل هذا النوع من الـ Procedure الذي يرتجع جدول من السجلات من داخل النماذج !!!هل هناك طريقة مباشرة مع الـ Block وما هي هذه الطريقة ؟؟؟حيث أنني حاولت أكثر من مرة ضبط خاصية Query Data Source Type الي القيمة Procedure ولم أنجح وكيف تتم مثل هذه العملية دون الـ Data Block بمعني بالكود ؟؟؟إذاً ، فأنا لدي سؤالين ، الأول كيفية الربط من خلال الـ Data Block ومن خلال الكود ؟؟ياريت أخي تكون فهمت قصدي ، ونحن هنا في قسم النماذج وأرغب بالتعامل مع الإجراءات بكل الطرق شكراً ، وياريت أجد إستجابة سريعاً ، جزاكم الله كل خير ،والسلام ختام تقديم بلاغ
بتاريخ: 5 مارس 200818 سنة كاتب الموضوع comment_123981 لا حول ولا قوة إلا بالله !!!طب إخواني ، كل ألي أنا أعرفة عن الـ Ref Cursor المدرج داخل الـ Package يمكنني إستخدامة كما يلي من داخل النموذج : Declare RC PKG.Cur_Emp; ID_Code VarChar2(20); ID_Name VarChar2(50); Begin Open RC For Select Emp_Code,Emp_Name From Emp; Fetch RC Into ID_Code,ID_Name; While RC%Found Loop Message(ID_Code || ' - ' || ID_Name); Fetch RC Into ID_Code,ID_Name; End Loop; Close RC; End; بس أخواني ما فائدة إستخدام هذا الكود ، حيث يمكنني صناعة Cursour مباشرتاً دون اللجوء الي الكيرسور الموجود بقاعدة البيانات !!!لكنني أعلم أنها مفيدة جداً في حالة الربط مع الـ Data Block ، بإختصار ، كيف يمكنني التعامل مع النافذة المرفقةشكراً RC.zip تم تعديل 5 مارس 200818 سنة بواسطة MMA تقديم بلاغ
بتاريخ: 19 مارس 200818 سنة comment_124926 اخى الكريماعتقد ان هذا اللنك يشرح كيفية العمل على هذا النظام من الجداولhttp://www.araboug.org/ib/index.php?showto...hl=%DE%E3%C7%D4اسف على طول الغياب تقديم بلاغ
بتاريخ: 19 مارس 200818 سنة كاتب الموضوع comment_124936 أولاً أخي أنا أشكرك كثيراً ثانياً ، أنا نظرت الي الرابط وللأسف لا أعلم كيف لم أحصل علية ( تاهت مني ) ، لكن أخي أنا من الصباح وأنا أحاول معها بأن تقرأ فقط لا غير ( لا أحتاجها تتدرج ) ولكنني لم أتوصل لحل مشكلتي !!!الأخ الغالي ، الموضوع ماشي معاية تمام ، ولكن عند تنفيذ البرنامج Ctr+R يظهر لي أكثر من خطأ عند كل سطر PLSQL_TABLE ، وعندما فكرت أن أحذفهم فوجأت بأن الفورم يدرجهم من جديد وأعتقد أن وجودهم حتمياً في كلاً من الأحداث التالية علي الداتا بلوك !!! QUERY-PROCEDUREINSERT-PROCEDUREUPDATE-PROCEDUREDELETE-PROCEDURELOCK-PROCEDURE بجد أخي أنا لا أعلم ما المشكلة ( ياريت تنظر الي المرفق ) .شكراً وجزاك الله كل خيرSimble.zip تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.