تمرير المعلمات من الموقف بدلا من اسم

وثائق مختلفة قد ذكرت ان المعلمات قد يتم تمريرها إلى الإجراءات المخزنة في أي أمر وأن الملزمة التي تحدده باستخدام DBVARNAME صحيح خرائط قيمة سمات لقاعدة بيانات عن المتغيرات المقابلة ، ولكن هذا ليس هو الحال في الممارسة العملية. يجب عليك دائما تمرير المعلمات إلى الإجراءات المخزنة في نفس الترتيب بالضبط كما تظهر في الإجراء المخزن واجهة ؛ خلاف ذلك ، يلقي كولد فيوجن استثناء. كثيرة ، ولكن ليس كل شيء ، يمكن للخوادم قاعدة البيانات نتيجة عودة مجموعات من الإجراءات المخزنة. لتلك التي يمكن ، CFPROCRESULT تربط هذه النتيجة تضع على الاستفسارات كولد فيوجن ، مما يجعلها متاحة للاستخدام في التطبيقات الخاصة بك كولد فيوجن تماما كما لو كانوا عادوا من مكالمة CFQUERY. وعلى الرغم من أن بعض خوادم قاعدة البيانات يمكن إرجاع مجموعات النتائج متعددة من نفس واحدة CFSTOREDPROC الدعوة ، مع السائق الذي كولد فيوجن يصل إلى قاعدة البيانات ويجب دعم مثل هذه القدرة ايضا. بالنسبة لأوراكل ، وكنت في حاجة الى نوع 4 جدبك للسائق ، مثل الذي يأتي معيار واحد كولد فيوجن الإرسال المتعدد مع المؤسسة ، أو خالية من منظمة المؤتمر الإسلامي سائق أوراكل إذا كنت تقوم بتشغيل كولد فيوجن الإرسال المتعدد الفنية. نظرة إلى الوراء ولو للحظة في رمز. كنت المتوقع أن يعود نتيجة واحدة فقط من تعيين هذا الإجراء المخزن ، وكنت ملزما بأن النتيجة لتعيين استعلام كولد فيوجن الكائن المسمى GetGeorgiaCompanies باستخدام العلامة CFPROCRESULT التالية :

  

إنشاء أو استبدال عبوات pkg_CompaniesEmployees كنوع recCompany هي سجل (vCompanyName Company.CompanyName اكتب ٪ ، vZipCode Company.ZipCode اكتب ٪) ؛ recEmployee النوع هو محضر (vLastname Employee.Lastname اكتب ٪ ، vFirstname Employee.Firstname اكتب ٪) ؛ نوع curCompanies هو مرجع رأس المؤشر العودة recCompany ؛ curEmployees النوع هو مرجع رأس المؤشر العودة recEmployee ؛ sp_GetCompaniesEmployees الداخلي (vState فى تشار ، vName فى تشار ، rsCompanies نفاد curCompanies ، rsEmployees نفاد curEmployees) ؛ pkg_CompaniesEmployees الغاية ؛
/ إنشاء أو استبدال عبوات الهيئة pkg_CompaniesEmployees ع sp_GetCompaniesEmployees الداخلي (vState فى تشار ، vName فى تشار ، rsCompanies نفاد curCompanies ، rsEmployees نفاد curEmployees) مثل بيغن المفتوح rsCompanies لاختيار اسم الشركة ، الرمز البريدي من الشركة حيث الدولة = sp_GetCompaniesEmployees.vState ترتيب حسب الرمز البريدي الرابطة ؛ المفتوح rsEmployees لاختيار الاسم الأول ، اسم العائلة اسم العائلة من الموظف أين يحب sp_GetCompaniesEmployees.vName | | '٪' ترتيب حسب الرابطة اسم العائلة ، الاسم الأول الرابطة ؛ sp_GetCompaniesEmployees الغاية ؛ pkg_CompaniesEmployees الغاية ؛ /

الأولى ، وهي حزمة أوراكل هو فقط ما يدل على ذلك اسمه : مجموعة كبيرة أو حاوية لعناصر فردية ، في هذه الحالة ، وأربعة المعرفة أنواع البيانات وإجراء مخزن. وهناك حزمة من جزأين : رأس ، حيث المعرفة وأنواع البيانات واجهات في أي إجراءات تخزين والوظائف الواردة في حزمة يتم تعريفها ، والجسد ، حيث الإجراءات المخزنة وظائف أنفسهم مبرمجة. لذا فإن المهمة الأولى في تهيئة حزمة أوراكل لتحديد واجهة ، والتي يمكنك القيام بها باستخدام التعليمات البرمجية التالية :

إنشاء أو استبدال عبوات pkg_CompaniesEmployees كنوع recCompany هي سجل (vCompanyName Company.CompanyName اكتب ٪ ، vZipCode Company.ZipCode اكتب ٪) ؛ recEmployee النوع هو محضر (vLastname Employee.Lastname اكتب ٪ ، vFirstname Employee.Firstname اكتب ٪) ؛ نوع curCompanies هو مرجع رأس المؤشر العودة recCompany ؛ curEmployees النوع هو مرجع رأس المؤشر العودة recEmployee ؛ sp_GetCompaniesEmployees الداخلي (vState فى تشار ، vName فى تشار ، rsCompanies نفاد curCompanies ، rsEmployees نفاد curEmployees) ؛ pkg_CompaniesEmployees الغاية ؛ /

ولكن لنرى بالضبط ما يجب أن يحتوي الرأس ، تحتاج إلى النظر إلى الأمام ، في الجسم من حزمة أوراكل للالمؤشر الفعلي الذي يحتوي على أول مجموعة نتائج الاستعلام ، على النحو التالي :

rsCompanies مفتوحة لاختيار اسم الشركة ، الرمز البريدي من الشركة حيث الدولة = sp_GetCompaniesEmployees.vState ترتيب حسب الرمز البريدي الرابطة ؛

كل صف إلى استرجاع هذا المؤشر يحتوي على عمودين من جدول الشركة : اسم الشركة والرمز البريدي ، والتي تحدد البعد المتغير المؤشر يشير هذا المؤشر. التالي ، كنت في حاجة الى نوع البيانات التي يتم من هذا البعد. لحسن الحظ ، وأوراكل لديها القدرة على إنشاء مجمع للمستخدم أنواع البيانات المعرفة ودعا المحاضر. يمكنك الاستفادة من هذه القدرة ، وإنشاء سجل اسمه recCompany نوع البيانات التي تحمل اسم الشركة والرمز البريدي كل صف من الأعمدة التي تم استردادها من جدول الشركة ، على النحو التالي :

recCompany النوع هو محضر (vCompanyName Company.CompanyName اكتب ٪ ، vZipCode Company.ZipCode اكتب ٪) ؛ 

الأجزاء المكونة من النوع recCompany البيانات يجب أيضا أن لديها أنواع بيانات محددة. إلحاق اكتب ٪ ليعود عنصرا البيانات نوع البيانات الخاصة به ، ولذلك فإن التعريف السابق سجل ما يعادل البرمجية التالية :

recCompany النوع هو محضر (VARCHAR2 vCompanyName (40) ، VARCHAR2 vZipCode (10)) ؛

بعد لديك نوع من البيانات البعد نفس الصفوف من أن يحتويه المؤشر ، يمكنك تحديد المؤشر المتغير للإشارة إلى المؤشر ، على النحو التالي : نوع curCompanies هو مرجع رأس المؤشر العودة recCompany ؛ ما هو نوع هذا التعريف هو قوله "تعريف المؤشر المتغير المسمى curCompanies التي ترجع الصفوف التي تحتوي على نفس البعد كنوع recCompany البيانات." يمكنك تكرار نفس البرمجة للمتغير الثاني المؤشر - curEmployees ، وكنت على استعداد للانتقال إلى رأس مجموعة في واجهة الإجراء المخزن. واجهة من الإجراء المخزن الذي يعود بك مجموعتين نتيجة مشابهة لما الإجراءات المخزنة التي قمت بإنشائها ، حيث أنه يحتوي على معلمات من أنواع بيانات محددة. قمت بتعريف معلمتين الإدخال التي يتم استخدامها في جمل من أين لكم اثنين من الاستفسارات ، بالاضافة الى انك تعلن معلمتين الإخراج من مرجع رأس المؤشر أنواع البيانات التي قمت بتعريفها على النحو التالي :

rsCompanies نفاد curCompanies ، rsEmployees نفاد curEmployees

كامل كتلة التعليمات البرمجية التي تعرف في واجهة الإجراء المخزن هو كما يلي :

sp_GetCompaniesEmployees الداخلي (vState فى تشار ، vName فى تشار ، rsCompanies نفاد curCompanies ، rsEmployees نفاد curEmployees) ؛

فهو يحدد واجهة للsp_GetCompaniesEmployees المخزنة. وأخيرا ، كان لديك التعليمات البرمجية التالية :

pkg_CompaniesEmployees الغاية ؛ /

ويخلص إلى تعريف رسمي للواجهة في pkg_CompaniesEmployee حزمة أوراكل.

مقال مقدم من يناير هاردي


تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات.
المهم : هذه المادة "تمرير معلمات حسب الموقف بدلا من اسم" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.


Online: 462 users browsing the articles directory