Получение скриптов готовых объектов

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Корвин
Сообщения: 3
Зарегистрирован: 20 авг 2007, 09:28

Получение скриптов готовых объектов

Сообщение Корвин » 14 сен 2008, 20:11

Помогите получить от существующей базы скрипт создания объекта как это позволяет IBExpert.
Например, в базе есть таблица KLIENT и вышеупомянутый IBExpert выводит:

Код: Выделить всё

CREATE TABLE KLIENT (
    ID            INTEGER NOT NULL,
    NAME          VARCHAR(50),
);

ALTER TABLE KLIENT ADD CONSTRAINT PK_KLIENT PRIMARY KEY (ID);

/* Trigger: KLIENT_BI0 */
CREATE TRIGGER KLIENT_BI0 FOR KLIENT
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  if (new.ID is NULL) then new.ID=GEN_ID(G_KLIENT, 1);
end
То же самое касательно тригеров, виевов, генераторов и процедур.

P.S.
Прошу прощения если неверно определил раздел для вопроса (это сложновато).

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Получение скриптов готовых объектов

Сообщение kdv » 14 сен 2008, 23:11

http://www.ibase.ru/devinfo/ibx.htm#ibextract

нужно только учесть, что в этой части IBX поддерживает только InterBase. Но есть исходники IBX .

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: Получение скриптов готовых объектов

Сообщение dimitr » 15 сен 2008, 21:27

а чем isql -x не устраивает?

Tonal
Сообщения: 104
Зарегистрирован: 30 сен 2007, 13:42

Re: Получение скриптов готовых объектов

Сообщение Tonal » 16 сен 2008, 09:14

А им уже можно получить восстановимый скрипт базы?
Я когда последний раз пытался - не получилось. Пришлось назад на IBEScript откатываться.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Получение скриптов готовых объектов

Сообщение kdv » 16 сен 2008, 10:41

А им уже можно получить восстановимый скрипт базы?
Я когда последний раз пытался - не получилось.
не представляю, как можно из isql получить скрипт, который "невосстановим".

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: Получение скриптов готовых объектов

Сообщение dimitr » 16 сен 2008, 12:00

пример базы в студию. В смысле, в трекер :-)

Tonal
Сообщения: 104
Зарегистрирован: 30 сен 2007, 13:42

Re: Получение скриптов готовых объектов

Сообщение Tonal » 17 сен 2008, 12:38

Как минимум, тогда наткнулся на вот это:
http://tracker.firebirdsql.org/browse/CORE-1394
http://tracker.firebirdsql.org/browse/CORE-915

Оповестил всех в рассылке и проголосовал.
Может ещё что-то было - не помню...

А вспомнил - для индексов с обратной сортировкой направление сортировки не указывалось - это поправили. :-)

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Re: Получение скриптов готовых объектов

Сообщение WildSery » 17 сен 2008, 14:34

Уж про CORE-915 постеснялся бы упоминать ;)
Да, недочёт, но до невосстановимости как-то с трудом...

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Получение скриптов готовых объектов

Сообщение kdv » 17 сен 2008, 17:20

CORE-1394
за использование ссылок в доменах на любое кроме udf надо отлучать от программирования, принудительно.
Кстати, таким способом можно наплодить циклических ссылок элементарно. И как тогда isql должен выкручиваться?
create table пустую, а потом alter table add column ?

CORE-915 это вообще пипец. Была б моя воля, я бы удавил тех, кто считает команду CR эквивалентом CR+LF.
Сэкономили байт, юниксоиды. Теперь кушайте.
CR - это перевод каретки с конца строки в начало строки. Т.е. эквивалент нажатию кнопки Home.
LF - это перевод каретки на одну строку вниз, на той же позиции печати.
Поэтому переход в начало следующей строки - это только CR+LF и никак иначе. :evil:

Tonal
Сообщения: 104
Зарегистрирован: 30 сен 2007, 13:42

Re: Получение скриптов готовых объектов

Сообщение Tonal » 18 сен 2008, 08:39

Про CORE-1394 - тем не менее, проблема есть.
И либо сервер не должен допускать создание таких ссылок, либо утилиты должны правильно их разруливать.

CORE-915 - это явным образом недоработка утилиты.
Невосстановимость тут не появляется, а появляется некорректность восстановления из скрипта при использовании многострочных литералов.
Хорошо, что у меня это не используется.
Но у меня сейчас есть база, в которой исходники половины триггеров после isql -x имеют окончания строк CR+CR+LF.
А вот IBEScript или IBExpert генерят скрипт с неё совершенно нормально.

Короче isql -x оставляет после использования ощущение недоделанности. :(

Ответить