6В06 Информационно-коммуникационные технологии


Создание БД или таблицы программно. Для этого



бет27/79
Дата29.12.2021
өлшемі0,5 Mb.
#106319
түріПротокол
1   ...   23   24   25   26   27   28   29   30   ...   79
Байланысты:
БД в ИС

Создание БД или таблицы программно. Для этого

  • создаем каталог для БД Interbase:


  • открываем текстовый файл с помощью Delphi или Word;

  • набираем соответствующий текст (см. примеры).

Пример 1. Рассмотрим создание БД ib_SQL.gdb и таблиц 3-5 (Tovary, Rashod и Pokupateli). Для этого открываем каталог d:\aaa\ и набираем с использованием средств Delphi или Word в текстовый файл следующий текст

/*Создание с БД*/

Create database "d:\aaa\ib_SQL.gdb "USER "A" PASSWORD "1";



/*Соединение с БД*/

CONNECT "d:\aaa\ib_SQL.gdb "USER "A" PASSWORD "1"; CREATE TABLE POKUPATELI(

POKUP CHAR(20) NOT NULL, GOROD CHAR(12) NOT NULL, ADRES CHAR(20) NOT NULL, PRIMARY KEY(POKUP)

);

CREATE TABLE TOVARY( TOVAR CHAR(20) NOT NULL, ED_IZM CHAR(10) NOT NULL, ZENA INTEGER NOT NULL, PRIMARY KEY(TOVAR)



);

CREATE TABLE RASHOD(

N_RASH INTEGER NOT NULL, DAT_RASH DATE NOT NULL, KOLVO INTEGER NOT NULL, TOVAR CHAR(20) NOT NULL, POKUP CHAR(20) NOT NULL, PRIMARY KEY(N_RASH),

FOREIGN KEY(POKUP) REFERENCES POKUPATELI, FOREIGN KEY(TOVAR) REFERENCES TOVARY

);

Задание ключа FOREIGN KEY(TOVAR) REFERENCES TOVARY не дает возможность изменять или удалять запись в поле TOVAR таблицы TOVARY если имеется хотя бы одна запись в таблице RASHOD. Для того, чтобы это осуществить, сначала необходимо удалить соответствующее ограничение целостности- Refrential Integrety (SQL Explorer|ib_SQL|Tables|RASHOD| Refrential Integrety) – в нашем случае INTEG_16, набирая и выполняя следующий оператор в WISQL (в таком режиме он выполняет только один оператор)

ALTER TABLE RASHOD

DROP CONSTRAINT INTEG_16,
и аналогично последовательно записать и выполнить следующие триггеры (TRIGGER) (подпрограммы, выполняемые автоматически до и (или) после события изменения записи в таблице)

CREATE TRIGGER BU_TOVARY FOR TOVARY ACTIVE

BEFORE UPDATE AS

BEGIN


IF (OLD.TOVAR<>NEW.TOVAR) THEN UPDATE RASHOD

SET TOVAR = NEW.TOVAR WHERE TOVAR = OLD.TOVAR;

END;
CREATE TRIGGER AD_TOVARY FOR TOVARY ACTIVE

AFTER DELETE AS

BEGIN

DELETE FROM RASHOD



WHERE RASHOD.TOVAR = TOVARY.TOVAR; END;
Пример 2. (Создание таблицы POTOK)



Достарыңызбен бөлісу:
1   ...   23   24   25   26   27   28   29   30   ...   79




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет