Oddiy saqlangan protseduraga misol
Endi birinchi saqlangan protsedurani yaratish va undan saqlangan protseduralarni yaratish jarayonini o'rganish uchun foydalanish vaqti. Lekin birinchi navbatda, saqlangan protseduralar bilan qanday ishlash haqida bir necha so'z aytish kerak.Gap shundaki, saqlangan protseduralarni ishlab chiqish va disk raskadrovka qilish uchun juda yomon standart vositalar o'z shon-shuhratini tushunarsiz va noqulay CP vositasiga bog'laydi. InterBase hujjatlarida CP matnini o'z ichiga olgan SQL skript fayllari yordamida protseduralarni yaratish tavsiya etiladi, ular isql tarjimoniga kirishga beriladi va shu bilan CP ni yaratish va o'zgartirish. Agar ushbu SQL skriptini kompilyatsiya qilish bosqichida. BLR da protsedura matni Agar xatolik yuzaga kelsa, isql SQL skript faylining qaysi qatorida bu xatolik yuz berganligi haqida xabarni ko'rsatadi. Xatoni tuzating va yana takrorlang. So'zning zamonaviy ma'nosida disk raskadrovka, ya'ni o'zgaruvchilarning oraliq qiymatlarini ko'rish qobiliyati bilan bajarilishini kuzatish umuman gap emas. Shubhasiz, bu yondashuv ishlab chiquvchining nazarida saqlangan protseduralarning jozibadorligini oshirishga yordam bermaydi.
Biroq, HP rivojlanishiga standart minimalist yondashuvdan tashqari<_\ществ\ют также инструменты сторонних разработчиков, которые делают работу с хранимыми процедурами весьма удобной Большинство универсальных продуктов для работы с InterBase, перечисленных в приложении "Инструменты администратора и разработчика InterBase", предоставляют удобный инструментарий для работы с ХП. Мы рекомендуем обязательно воспользоваться одним из этих инструментов для работы с хранимыми процедурами и изложение материала будем вести в предположении, что у вас имеется удобный GUI-инструмент, избавляющий от написания традиционных SQL-скриптов
Saqlangan protsedura sintaksisi quyidagicha tavsiflanadi:
PROCEDURE nomini yarating
[(param ma'lumotlar turi [, parametr ma'lumotlar turi ...])]
)]
AS ;
< procedure_body> = []
< block>
< vanable_declaration_list> =
DECLARE VARIABLE var ma'lumotlar turi; = BOSHLASH
< compound_statement>
[< compound_statement> ...]
OXIRI
< compound_statement> = (bayonot;)
Bu juda katta hajmli ko'rinadi va hatto noqulay bo'lishi mumkin, lekin aslida hamma narsa juda oddiy.Sintaksisni asta-sekin o'zlashtirish uchun asta-sekin murakkabroq misollarni ko'rib chiqamiz.
Shunday qilib, ikkita raqamni kiritish, qo'shish va natijani qaytaradigan juda oddiy saqlangan protsedura misoli: SP_Add (birinchi_arg DOUBLE PRECISION,
second_arg DOUBLE ANLIK)
QAYTIB BERISH (Natija ikki karra aniqlik)
AS BOSHLASH
Natija = first_arg + second_arg;
TO'XTIRISH; OXIRI
Ko'rib turganingizdek, hamma narsa oddiy: CREATE PROCEDURE buyrug'idan so'ng, yangi yaratilgan protsedura nomi ko'rsatiladi (bu ma'lumotlar bazasida yagona bo'lishi kerak) - bu holda, SP_Add, so'ngra CP ning kiritish parametrlari - first_arg va second_arg - qavslar ichida vergul bilan ajratilgan holda, ularning turlari ko'rsatilgan holda keltirilgan.
Kirish parametrlari ro'yxati CREATE PROCEDURE operatorining ixtiyoriy qismidir - protsedura tanasi ichidagi jadvallarga so'rovlar orqali o'z ishlashi uchun barcha ma'lumotlarni oladigan holatlar mavjud.
Har qanday skalyar InteiBase ma'lumotlar turlari saqlangan protseduralarda qo'llaniladi Hech qanday massiv va foydalanuvchi tomonidan belgilangan turlardan foydalanish mumkin emas – domenlar
Keyin RETURNS kalit so'zi keladi, shundan so'ng qaytarilgan parametrlar qavslar ichida ularning turlarini ko'rsatadi - bu holda, faqat bitta - Natija.
Agar protsedura parametrlarni qaytarmasligi kerak bo'lsa, RETURNS so'zi va qaytarish parametrlari ro'yxati yo'q.
RETURNSQ dan keyin AS kalit so'zi keladi. AS kalit so'zi ketishidan oldin sarlavha, va undan keyin - techo protseduralar.
Saqlangan protseduraning tanasi - bu uning ichki (mahalliy) o'zgaruvchilari tavsiflari ro'yxati (agar mavjud bo'lsa, biz ularni quyida batafsilroq ko'rib chiqamiz), nuqta-vergul (;) bilan ajratilgan va BEGIN operator qavslari ichiga olingan bayonotlar blokidir. OXIRI. Bunday holda, SP ning tanasi juda oddiy - biz ikkita kirish argumentini qo'shishni va ularning natijasini chiqishga belgilashni so'raymiz, keyin esa TO'XTARISH buyrug'ini chaqiramiz. Biroz vaqt o'tgach, biz ushbu buyruqning ishlashining mohiyatini tushuntiramiz, ammo hozircha biz qaytarilgan parametrlarni saqlangan protsedura chaqirilgan joyga o'tkazish kerakligini ta'kidlaymiz.
Do'stlaringiz bilan baham: |