Разработка приложений баз данных для СУБД Sybase SQL Anywhere


         

Хранимые процедуры - часть 3


='Ins_absent' //Указание имени владельца при необходимости //AND User_name='Stepanov'; //оператор экспорта результатов оператора SELECT OUTPUT TO d:\Log_db\proctext.sql FORMAT ASCII

Загрузим в окно Command утилиты ISQL текст процедуры из файла d:\Log_db\proctext.sql. , выполнив команду меню File|Open. Отредактируем этот текст, заменив в нем название процедуры на Ins_absent_new и дополним состав формальных параметров параметром par_End_date. С учетом этого текст процедуры Ins_absent_new будет иметь вид:

//Создание процедуры с параметрами по умолчанию CREATE PROCEDURE Ins_absent_new /* Процедура, фиксирующая факт выдачи книги с инвентарным номером Par_N_books читателю, имеющим читальскую карточку, с номером Par_N_reader.Этот факт записывается в таблицу Absent. Владельцем таблицы Absent является пользователь Stepanov. В данной таблице дата выдачи книги (поле Beg_date) по умолчанию является текущая дата. Обычно книга выдается на 15 дней и на основании этого определяется дата ее возврата (поле End_date) по умолчанию. В случае необхо- димости книга может быть выдана на срок отличный от 15 дней путем использования фактического параметра Par_End_date */ ( IN Par_N_books SMALLINT, IN Par_N_reader SMALLINT, IN Par_End_date DATE DEFAULT current date+15 ) BEGIN INSERT INTO Stepanov.Absent (N_books, N_reader, End_date) VALUES( par_N_books, Par_N_reader, Par_End_date) END

После выполнения этого оператора в базу данных будет записана процедура Ins_absent_new. При обращении к этой процедуре в качестве фактических может использоваться два или три значения. Проверку этого факта автор предоставляет читателю.

Процедуры Ins_absent и Ins_absent_new могут быть созданы в одном сеансе ISQL. В этом случае для преобразования первой процедуры в вторую, текст процедуры Ins_absent может быть вызван для редактирования из списка ранее выполнявших последовательностей SQL-операторов () при помощи клавиш Ctrl+R.

В СУБД SQL Anywhere в процедурах может использоваться несколько параметров по умолчанию. В этом случае для указания какому именно из таких формальных параметров передаются значения фактических параметров используются имена соответствующих формальных параметров. Для иллюстрации этой возможности проведем редакцию процедуры Ins_absent_new:




Содержание  Назад  Вперед