إعادة استخدام رمز الإجراء المخزن

بنفس الطريقة التي يمكنك إنشاء علامات مخصصة من شظايا رمز كولد فيوجن ومن ثم استدعاء تلك السمات المخصصة كولد فيوجن من القوالب الأخرى ، يمكنك أن تفعل الشيء نفسه تقريبا مع الإجراءات المخزنة. الإجراءات المخزنة يمكن استدعاء الإجراءات المخزنة أخرى بنفس الطريقة التي يتم استدعاؤها من كولد فيوجن ولكن من دون سمة المستندة إلى الواجهة. قل ، على سبيل المثال ، أن يكون لديك إجراء مخزن ، sp_GetInventoryItem ، أن يسترد صف InventoryItem على أساس القيمة ItemNumber تمريرها . كنت تستخدم في جميع أنحاء sp_GetInventoryItem الإلكتروني الخاص بك تطبيق التجارة للحصول على معلومات حول المنتج ، كما للمستخدمين تصفح النشرة المصورة ، ويمكنك أيضا استخدامه لاسترداد العناصر جرد للعمل الإداري. الآن تريد إدراج sp_GetInventoryItem مع إجراء مخزن آخر ، sp_DiscountItem ، أن تخفيضات أسعار عنصر قائم على ما إذا كان المستخدم بإدخال رمز القسيمة صالحة الخصم في بداية الدورة عن التسوق. يمكنك تكرار رمز لاسترداد البند الجرد وأداء الخصم في كل إجراء مخزن التي تتطلب مثل هذه المهمة ، أو أن تتمكن من إجراء الصيانة رمز أسهل من الخروج من الأمثلة رمز مشترك في إجراءاتها الخاصة ، ووصفها بأنها حيثما تدعو الحاجة ، كما هو موضح في رمز.

-- هذا الاجراء سوف يتم استدعاء من قبل sp_DiscountItem إنشاء الإجراء sp_GetInventoryItem (@ giiItemNumber Varchar (15) ، @ Varchar giiDescription (40) الناتج ، و @giiUnitPrice رقمى (12،2) الإخراج ، @ giiAvailableToSell صحيح الإخراج ، @ giiComments Varchar (200) الناتج ) كما حدد @ giiDescription = الوصف ، giiUnitPrice @ = سعر الوحدة ، giiAvailableToSell @ = AvailableToSell ، giiComments @ = تعليقات من أين InventoryItem
ItemNumber = @ عودة giiItemNumber تذهب -- وهذا الإجراء سيكون أيضا التي دعا اليها sp_DiscountItem إنشاء الإجراء sp_GetAmountDue (@ CouponCode Varchar (16) ، @ AmountDue رقمى (12،2) الناتج) كما نعلن @ بت مطفأة ، @ PercentDiscount رقمى (12،2 (حدد @ مطفأة = مطفأة ، PercentDiscount @ = PercentDiscount القسيمة من أين CouponCode = @ CouponCode المتكامل (@ @ ROWCOUNT! = 1) ستبدأ في العودة -- القسيمة لا وجود لها ؛ أي تغيير سعر النهاية إذا (@ مطفأة = 1) ستبدأ في العودة -- القسيمة بالفعل افتدى ؛ أي تغيير سعر انتهى آخر بدء ، إختر AmountDue = @ @ AmountDue * (1 -- @ PercentDiscount / 100) عودة الذهاب انتهى -- وهذا هو الإجراء الوالد الذي يسمى إنشاء الإجراء sp_DiscountItem (@ Varchar diCouponCode (16) ، @ diItemNumber Varchar (15) ، @ Varchar diDescription (40) الناتج ، و @diUnitPrice رقمى (12،2) الإخراج ، @ diAvailableToSell صحيح الإخراج ، @ diComments Varchar (200) الناتج) على النحو إكسيك sp_GetInventoryItem (
@ @ giiItemNumber = diItemNumber ، giiDescription = @ @ الناتج diDescription ، giiAvailableToSell giiUnitPrice = @ @ الناتج diUnitPrice ، @ @ = الناتج diAvailableToSell ، giiComments = @ @ diComments الإخراج) إكسيك sp_GetAmountDue (CouponCode = @ @ diCouponCode ، AmountDue = @ @ الناتج diUnitPrice) عودة الذهاب
  

المرة الأولى التي نقوم من أي وقت مضى مشفرة مثل هذا الشيء ، رؤوسنا ما يقرب من انقسام واسعة مفتوحة من الارتباك! المعلمة التي هي مدخلات الانتاج التي وكيف يمكن تمرير هذا واحد مرة أخرى إلى أن واحدا وهلم جرا؟ حسنا ، لقد برزت أخيرا ل لشرح طريقة إجراء واحد عن طريق استخدام معلمات الإخراج أن ندعو الى آخر بطريقة منطقية. تجد أدوبي أكروبات ملف اسمه إخراج معلمة Tracing.pdf ، الذي يحتوي على قائمة السابقة المتكررة لمرة واحدة كل خطوة في عملية تمرير المعلمة ، مع رسم تخطيطي لكل خطوة ، وشرحا في سهل الانجليزية ما يحدث في كل خطوة. نحن نتبع واحدة من هذه معلمات الإخراج ، وسعر الوحدة ، في رحلتها من خلال إتمام جميع الإجراءات المخزنة التي استخدامه وتبين كيف يتم الحصول على القيم ومرت بين المعلمات. ونحن نقدر نقترح عليك أن تأخذ لحظات قليلة لفتح تلك الوثيقة ، ومتابعة كل خطوة من العملية. حقا لنفوذ الإجراءات المخزنة في تطبيقاتك كولد فيوجن ، تحتاج إلى فهم كامل لهذا الموضوع المعقد. لقد كرر وصف السهل الانجليزية كل خطوة في ما يلي قائمة مرقمة ، ولكن بعد أن الرسم البياني في متناول اليد كما تقرأ لهم يساعد حقا. العملية كل شيء يبدأ مع sp_DiscountItem الداخلي التي يتم استدعاؤها من كولد فيوجن على النحو التالي :

1. sp_DiscountItem هو أول المخزنة دعا. المعلمة @ diUnitPrice الانتاج يبدأ مع قيمة فارغة ، عند هذه النقطة ، @ diUnitPrice هو مجرد "دلو فارغ" لتلقي قيمة العودة من sp_DiscountItem بعد انتهاء تنفيذ والعودة بعد ذلك أن قيمة إلى التطبيق العميل. الناتج sp_DiscountItem يقول : "اذا كنت تفعل شيئا لقيمة @ diUnitPrice بك أثناء التنفيذ ، والناتج عن القيمة الجديدة مرة أخرى إلى @ diUnitPrice بحيث القيمة الجديدة يمكن استخدامها من قبل أي طلب أو إجراء يسمى لك." اذا لم @ diUnitPrice وقد نعت الإخراج ، إلا أنها ستبقى فارغة بعد الانتهاء من تنفيذ sp_DiscountItem.

2. @ diUnitPrice هي القيمة التي تتغذى على المعلمة @ giiItemUnitPrice الناتج من الدعوة إلى sp_GetInventoryItem. الحق الآن ، فإنه لا يزال مجرد قيمة فارغة.

3. @ giiUnitPrice تهيئة مع قيمة فارغة قدمتها @ diUnitPrice وجاهز الآن لاستدعاء sp_GetInventoryItem.

4. sp_GetInventoryItem يسمى الآن مع @ giiUnitPrice كمعلمة إخراج. وهو لا يزال يحتوي على قيمة فارغة. انها مجرد وظيفة في هذه المرحلة هو توفير دلو فارغة في المكان الذي قد sp_GetInventoryItem قيمة.

5. sp_GetInventoryItem ينفذ بعد ، فإنه يختار قيمة العمود من InventoryItem.UnitPrice إلى المعلمة الإخراج @ giiUnitPrice.

6. @ giiUnitPrice يحتوي الآن على سعر وحدة استرجاع من البند الجرد بدلا من قيمة فارغة.

7. لأن @ giiUnitPrice هو معلمة إخراج في sp_GetInventoryItem ، والقيمة الجديدة هو العودة الى الناتج @ sp_DiscountItem داخل giiUnitPrice ، والذي دعا sp_GetInventoryItem فقط.

8. هذه القيمة الجديدة لل @giiUnitPrice هو زيادة انتاجها مرة أخرى في المعلمة @ diUnitPrice التي تتغذى أصلا قيمة فارغة إلى @ giiUnitPrice ، بسبب @ diUnitPrice لديه تصفيات الإخراج في الدعوة إلى sp_GetInventoryItem. @ الآن diUnitPrice يحتوي على نفس القيمة عاد من sp_GetInventoryItem.

9. الآن لديك غير المخصومة من قيمة سعر الوحدة في البند المخزنة في سجل المخزون @ diUnitPrice ، ويمكنك تغذية هذه القيمة إلى sp_GetAmountDue عن احتمال خفض الاسعار.

10. @ AmountDue هو تهيئة مع القيمة المخزنة في diUnitPrice @ وجاهز الآن لاستدعاء sp_GetAmountDue.

11. sp_GetAmountDue يسمى الآن مع @ AmountDue كمعلمة إخراج. وحاليا يحتوي على قيمة سعر الوحدة عاد من البند سجل المخزون.

12. sp_GetAmountDue يمكن أو لا يمكن تعديل القيمة المخزنة في @ AmountDue ، ولكن إذا فعلت ذلك ، يتم تعديل القيمة في استعادة @ AmountDue.

13. لأن @ AmountDue هو معلمة إخراج في sp_GetAmountDue ، والقيمة الجديدة هو العودة الى الناتج @ sp_DiscountItem داخل AmountDue ، والذي دعا sp_GetAmountDue فقط.

14. هذه القيمة الجديدة لل @AmountDue هو زيادة انتاجها مرة أخرى إلى أن المعلمة @ diUnitPrice أصلا غذت معدلة قيمة سعر الوحدة ل @AmountDue ، بسبب @ diUnitPrice لديه تصفيات الإخراج في الدعوة إلى sp_GetAmountDue الآن @ diUnitPrice يحتوي على (ربما) وحدة تعديل قيمة السعر عاد من sp_GetAmountDue.

15. لأن @ diUnitPrice هو معلمة إخراج في sp_DiscountItem ، @ diUnitPrice يمكن انتاجها النهائي ، وربما تعديل القيمة إلى التطبيق كولد فيوجن التي أطلق عليها في المقام الأول.

مقال قدمه مايكل باترسون


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


Online: 277 users browsing the articles directory