![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание БД с помощью ISQL.EXE [D6, IB6.x]
Tomkat © (2004-12-27 12:34:00)Hi, мастера! Кто подскажет (желательно в примере) создание БД из скрипта с помощью утилиты isql.exe
Заранее благодарен.
AHTOH (2004-12-27 18:20:00) [1]сорри, перед объявлением таблиц забыл домены описать ....
CREATE DOMAIN ID_TYPE BIGINT NOT NULL;
CREATE DOMAIN NUM_TYPE INTEGER NOT NULL;
CREATE DOMAIN STRING VARCHAR(256) DEFAULT '<NO NAME>';
AHTOH (2004-12-27 18:17:00) [2]Не знаю, как остальные, но я делаю ручками, но с помощью IBExpert:
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE 'localhost:MAINDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE = 4096 DEFAULT CHARACTER SET WIN1251;
CONNECT 'localhost:MAINDB' USER 'SYSDBA' PASSWORD 'masterkey';
CREATE TABLE JOB
(
JOB_ID ID_TYPE PRIMARY KEY,
JOB_NAME STRING /* наименование должности */
);
/* === создание ID-генератора для таблицы должностей === */
CREATE GENERATOR GEN_JOB_ID;
SET GENERATOR GEN_JOB_ID TO 0;
/* === создание триггера для ID-генератора таблицы должностей === */
SET TERM ^ ;
CREATE TRIGGER JOB_BI FOR JOB
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.JOB_ID IS NULL) THEN NEW.JOB_ID = GEN_ID(GEN_JOB_ID,1);
END ^
SET TERM ; ^
/* === внесение данных в таблицу должностей === */
INSERT INTO JOB (JOB_NAME) VALUES('бухгалтер');
INSERT INTO JOB (JOB_NAME) VALUES('грузчик');
INSERT INTO JOB (JOB_NAME) VALUES('кассир');
INSERT INTO JOB (JOB_NAME) VALUES('кладовщик');
INSERT INTO JOB (JOB_NAME) VALUES('контролер');
INSERT INTO JOB (JOB_NAME) VALUES('координатор');
INSERT INTO JOB (JOB_NAME) VALUES('логистик');
INSERT INTO JOB (JOB_NAME) VALUES('менеджер');
INSERT INTO JOB (JOB_NAME) VALUES('оператор');
INSERT INTO JOB (JOB_NAME) VALUES('системный администратор');
INSERT INTO JOB (JOB_NAME) VALUES('старший менеджер');
COMMIT;
CREATE TABLE PERSONAL
(
PERSONAL_ID ID_TYPE PRIMARY KEY,
PERSONAL_JOB_ID ID_TYPE, /* #ссылка на таблицу должностей */
PERSONAL_FAM STRING, /* фамилия */
PERSONAL_NAME STRING, /* имя */
PERSONAL_PAR STRING, /* отчество */
PERSONAL_FULLNAME /* полное имя - ФИО (вычисляемое поле)*/
COMPUTED BY (PERSONAL_FAM || ' ' || PERSONAL_NAME || ' ' || PERSONAL_PAR),
PERSONAL_STATUS NUM_TYPE,
PERSONAL_INFO STRING, /* прочая информация */
FOREIGN KEY(PERSONAL_JOB_ID) REFERENCES JOB(JOB_ID)
);
/* === создание ID-генератора для таблицы работников === */
CREATE GENERATOR GEN_PERSONAL_ID;
SET GENERATOR GEN_PERSONAL_ID TO 0;
/* === создание триггера для ID-генератора таблицы работников === */
SET TERM ^ ;
CREATE TRIGGER PERSONAL_BI FOR PERSONAL
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.PERSONAL_ID IS NULL) THEN NEW.PERSONAL_ID = GEN_ID(GEN_PERSONAL_ID,1);
END ^
SET TERM ; ^
/* === внесение данных в таблицу работников === */
INSERT INTO PERSONAL(PERSONAL_JOB_ID, PERSONAL_FAM, PERSONAL_NAME, PERSONAL_PAR, PERSONAL_STATUS, PERSONAL_INFO)
VALUES(4,'Пупкин','Василий', 'Степанович',1,' хороший кладовщик!');
INSERT INTO PERSONAL(PERSONAL_JOB_ID, PERSONAL_FAM, PERSONAL_NAME, PERSONAL_PAR, PERSONAL_STATUS, PERSONAL_INFO)
VALUES(2,'Полежаев','Виктор', 'Андреевич',0,'хреновый был грузчик! Много бухал и до фига накосячил. Потому и уволили');
INSERT INTO PERSONAL(PERSONAL_JOB_ID, PERSONAL_FAM, PERSONAL_NAME, PERSONAL_PAR, PERSONAL_STATUS,PERSONAL_INFO)
VALUES(1,'Клопова','Татьяна', 'Владимировна',1,'наш бухгалтер: не курит, не пьет и к сексу равнодушна');
INSERT INTO PERSONAL(PERSONAL_JOB_ID, PERSONAL_FAM, PERSONAL_NAME, PERSONAL_PAR, PERSONAL_STATUS,PERSONAL_INFO)
VALUES(5,'Берия','Георгий', 'Зурабович',1,'Вах! строгий контролер!');
INSERT INTO PERSONAL(PERSONAL_JOB_ID, PERSONAL_FAM, PERSONAL_NAME, PERSONAL_PAR, PERSONAL_STATUS,PERSONAL_INFO)
VALUES(11,'Ситников','Виктор', 'Иванович',1,'Всем манагерам манагер! А еще корешится с ментами и прочей конторой');
INSERT INTO PERSONAL(PERSONAL_JOB_ID, PERSONAL_FAM, PERSONAL_NAME, PERSONAL_PAR, PERSONAL_STATUS,PERSONAL_INFO)
VALUES(5,'Фридлянд','Григорий', 'Юльевич',0,'Уволили за то, что отказывался работать по субботам');
COMMIT;
Amoeba (2004-12-27 17:41:00) [3]Используй лучше IBExpert. Очень мощная и удобная программа. Для xUSSR он бесплатен.
http://www.ibexpert.com/rus/
Johnmen (2004-12-27 12:52:00) [4]Пример можно получить самому.
Для этого надо всего лишь "получить метаданные" с помощью той же IBConsole. И раскомментарить CREATE DATABASE...