Работа 1 - Создание, регистрация, подключение БД Interbase
Справочную информацию по Interbase можно найти , например на
http://klog.h17.ru/interbase/
Используем IBConsole.exe
1. Создание новой базы данных
Задано: создать БД из трёх таблиц:
Создание базы данных
Пусть решено разместить файл БД в C:\dbase1\ и назвать его DB1.gdb . Запускаем IBConsole.exe (входит в дистрибутив Делфи7). Далее:
- В левом окошке этой программы - дв.щелчок на Local Server, вводим: User name = SYSDBA , password = masterkey (если настройки не изменялись )
- Раскрывается список БД, доступных на локальном сервере (но он сейчас не нужен).
- Открываем в меню: Database | Create database
- В окошке Files вписываем имя создаваемого файла и путь, т.е. например C:\dbase1\DB1.gdb. Size можно не заполнять. Папка C:\dbase1\ должна существовать.
- В окошке Options выберите настройки. Птичку Register обычно оставляют.
- Щелкаем ОК. В левом окошке появляется созданная БД, а на диске - файл C:\dbase1\DB1.gdb
- Созданную БД можно:
- Удалить (если она открыта) - Меню | Tools | Interacive SQL : вписать запрос:
drop database 'C:\dbase1\DB1.gdb' и нажать кнопку Execute query (молния).
- Отключить : Выделить её в левом окошке, Меню | Database | Disconnect,
- Исключить из списка зарегистрированных: Меню | Database | Unregister
- Вернуть в список зарегистрированных: Меню | Database | Register. Далее - в верхнее окошко Database ввести имя файла БД т е C:\dbase1\DB1.gdb. Удобно воспользоваться кнопкой справа для поиска файла.
В окошко File можно вписать псевдоним (alias). Выбрать charset по умолчанию, например, WIN1251.
Щёлкнуть ОК внизу.
- Чтобы работать с БД, используя средства BDE (SQL Explorer ), нужно её зарегистрировать. Об этом см
здесь.
Создание таблиц
Таблицы создаются при помощи SQL-запросов:
CREATE TABLE "REISI"
(
"NOMREIS" SMALLINT NOT NULL,
"MARSH" CHAR(20) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
"NOMPOEZD" INTEGER NOT NULL,
"DATAOTPR" DATE NOT NULL,
"VREMAOTPR" CHAR(8) NOT NULL,
"DATAPRIB" DATE NOT NULL,
"VREMAPRIB" CHAR(8) NOT NULL,
PRIMARY KEY ("NOMREIS")
)
CREATE TABLE "POEZDA"
(
"NOMPOEZD" SMALLINT NOT NULL,
"VAGONOV" SMALLINT NOT NULL,
"MESTVAGON" SMALLINT NOT NULL,
PRIMARY KEY ("NOMPOEZD")
)
CREATE TABLE "BILETI"
(
"NOMBIL" SMALLINT NOT NULL,
"NOMREIS" SMALLINT NOT NULL,
"NOMVAG" SMALLINT NOT NULL,
"NOMMEST" SMALLINT NOT NULL,
"CENA" FLOAT NOT NULL,
"NOMPASP" CHAR(15) NOT NULL,
"FIOPASS" CHAR(30) NOT NULL,
PRIMARY KEY ("NOMBIL")
)
Для ввода запросов: Меню | Tools | Interacive SQL . Кавычки в тексте запросов можно убрать.
Если после каждого запроса добавить точку с запятой, то в окно можно ввести несколько запросов и затем
исполнить их, нажав кнопку Execute query (молния).
Справку по синтаксису запросов вы найдёте в файле \Program Files\Borland\InterBase\bin\SqlRef.hlp (англ)
Вторичные ключи создаю с помощью запросов:
ALTER TABLE REISI ADD FOREIGN KEY (NOMPOEZD) REFERENCES POEZDA (NOMPOEZD)
ALTER TABLE BILETI ADD FOREIGN KEY (NOMREIS) REFERENCES REISI (NOMREIS)
Для заполнения таблиц данными: щелкаю в левом окне Tables, затем - в правом: дв щелчок по таблице, затем перейти на закладку Data. После заполнения 1-й строки - щелкнуть клавишу "стрелка вниз".
Для сохранения изменений - щелкнуть кнопку Птичка, для сохранения в БД - щелкнуть кнопку Commit & Refresh. Можно также пользоваться кнопками: + (вставить), - (удалить) и т д.
При заполнении таблиц может произойти ошибка, связанная с нарушением целостности БД. Например,
попытка вставить в табл Билеты запись, где указан номер рейса (nomreis) = 8 , в то время как в таблице Рейсы такого номера рейса нет. Если нужно удалить контроль целостности (т е FOREIGN KEY (NOMREIS)), поступим так:
- Узнаем имя соответствующего ограничения, пытаясь его нарушить - как описано выше. Получаем:
INTEG_54
- Удаляем это ограничение исполняя запрос:
ALTER TABLE BILETI
DROP CONSTRAINT "INTEG_54"
- Чтобы проверить результат - делаем правый щелчок по нашей БД в левом окне IBConsole, выбираем
- View Metadata. Видим, что этого ограничения:
ALTER TABLE BILETI ADD FOREIGN KEY (NOMREIS) REFERENCES REISI (NOMREIS)
уже нет, поэтому можно :-)) регистрировать билеты на несуществующие рейсы.
Если это нам не нужно, повторно введите запрос:
ALTER TABLE BILETI ADD FOREIGN KEY (NOMREIS) REFERENCES REISI (NOMREIS)
Для удаления всех записей из табл Билеты введите запрос:
DELETE FROM BILETI
а для удаления описания структуры таблицы:
DROP TABLE BILETI
2. Подключение существующей базы данных
- см. "Вернуть в список зарегистрированных: Меню | Database | Register ". Например, можно подключить демо-базу \Program Files\Common Files\Borland Shared\Data\EMPLOYEE.GDB
В следующей работе создадим проект Делфи - интерфейс к этой базе данных.
Скачать db1.gdb - в RAR-архиве