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


         

что формальный параметр является входным,


  • IN - обозначает, что формальный параметр является входным, т. е. передающим значение процедуре;
  • OUT - формальный параметр является выходным, т.е. посредством его осуществляется передача одного из результатов работы хранимой процедуры вызывающему программному объекту;
  • INOUT - формальный параметр процедуры, выполняет роль как входного, так выходного параметра.


  • В процедуре Ins_absent используются только входные параметры. Тип данных каждого формального параметра должен соответствовать одному из типов данных, поддерживаемых SQL Anywhere ().

    Вызов хранимых процедур производится оператором CALL с соответствующими фактическими параметрами.

    Установим соединение с в утилите ISQL и обратимся к процедуре Ins_absent следующим образом:

    //Вызов процедуры на исполнение CALL Ins_absent (1001, 25)

    После этого при помощи оператора SELECT просмотрим содержимое таблицы Stepanov.Absent, чтобы удостовериться в работоспособности процедуры Ins_absent:

    //Просмотр таблицы Stepanov.Absent //для проверки внесенных изменений SELECT * FROM Stepanov.Absent WHERE N_books>1000 AND N_books<1050

    Теперь вернем базу данных в исходное состояние при помощи оператора ROLLBACK.

    При определении хранимых процедур, помимо явного указания значений фактических параметров, имеется возможность использования значений параметров по умолчанию. В связи с этим, текст процедуры Ins_absent может быть видоизменен в части определения значения по умолчанию для параметра, задающего дату, когда должна быть возвращена книга (поле Absent.End_date). Это позволит в отдельных случаях предоставлять право пользования книгой менее 15 дней для дефицитных книг или более этого срока в исключительных случаях. Присвоим этому параметру имя par_End_date.

    Тексты хранимых процедур в базе данных содержатся в системной таблице SYS.SYSPROCEDURE. Для получения текста процедуры Ins_absent необходимо выполнить следующие операторы:

    //Получение текста хранимой процедуры SELECT SYSPROCEDURE.Proc_defn FROM SYS.SYSPROCEDURE /* Связь с другой таблицы если необходимо использовать имя владельца */ //KEY JOIN SYS.SYSUSERPERM WHERE SYSPROCEDURE.Proc_name


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