Назад Оглавление Дальше

Работа 4 - Создание хранимой процедуры (2-й пример)


Справочную информацию по Interbase можно найти , например на http://klog.h17.ru/interbase/

Задание:

Создайте БД, содержащую информацию для сети видеопроката для учета проката видеокассет. С помощью хранимой процедуры обеспечьте контролера полной информацией о ходе проката кассеты, например, на случай ее порчи или утери.

Создание базы данных

Создадим БД в C:\dbase1\PROKAT_KASSET.GDB . Запускаем IBConsole.exe . Далее:

Создание таблицы - IBConsole, SQL-запрос:

CREATE TABLE prokat 
( KOD SMALLINT NOT NULL,  
NAZV CHAR(30) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
STOIM SMALLINT NOT NULL,  
FIO CHAR(30) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
DAT DATE NOT NULL, 
SROK SMALLINT NOT NULL,  
PRIMARY KEY (KOD) ) 
Для ввода запросов: Меню | Tools | Interacive SQL.

Справку по синтаксису запросов вы найдёте в файле \Program Files\Borland\InterBase\bin\SqlRef.hlp (англ)

Для заполнения таблиц данными: щелкаю в левом окне Tables, затем - в правом: дв щелчок по таблице, затем перейти на закладку Data. После заполнения 1-й строки - щелкнуть клавишу "стрелка вниз". Для сохранения изменений - щелкнуть кнопку Птичка, для сохранения в БД - щелкнуть кнопку Commit & Refresh. Можно также пользоваться кнопками: + (вставить), - (удалить) и т д. Добавляем в таблицу несколько записей

Введём при помощи запроса хранимую процедуру.

Текст запроса:
SET TERM ^ ;  
Create procedure prokat_kasset(IN_Kass smallint)
Returns (Name_K Char(30), Fio Char(30), Stoim_prokata smallint)
AS
Begin
For select NAZV, FIO, STOIM * SROK from prokat
 where KOD = :IN_Kass
 into :Name_K, :Fio, :Stoim_prokata
Do suspend;
End
^
COMMIT WORK ^
SET TERM ;^
Эта процедура принимает входной параметр - код клиента, вычисляет стоимость проката, умножая STOIM * SROK и возвращает название кассеты (:Name_K), фамилию клиента (:Fio), стоимость проката (:Stoim_prokata)

Создаём Делфи-проект для управления базой данных

Interbase Delphi
Скачать все файлы делфи-проекта и файл БД - PROKAT_KASSET.GDB
Rambler's Top100
Hosted by uCoz