ЧИсло допустимых изменений структуры таблички в FB 1.52

Корюшка
Дата: 11.09.2005 15:17:45
Здравствуйте, уважаемые специалисты.
Подскажите, пожалуйста - ограничение на число изменений структуры таблички (не более 255 до b/r) в FireBird 1.5.2 все еще в силе?

Спасибо.
kdv
Дата: 11.09.2005 16:07:05
блин. 255 изменений - это 1 байт в заголовке КАЖДОЙ записи.
Допустим, увеличат до 65535. Будет по ДВА байта в заголовке КАЖДОЙ записи.

собственно, приложения, которые на ходу с такой частотой меняю структуру таблицы - мастдай. Во время разработки базы такое ограничение никак не мешает.
Корюшка
Дата: 11.09.2005 16:11:42
Заказчик хочет, чтобы можно было динамически создавать справочники с заранее неизвестной структурой. Много денег.

------------
А версия таблички когда растет, после завершения транзакции?
Корюшка
Дата: 11.09.2005 16:26:43
Корюшка

А версия таблички когда растет, после завершения транзакции?

Пардон, опять глупость...
kdv
Дата: 11.09.2005 17:09:52
версия таблицы растет сразу, при alter table, если alter table меняет структуру таблицы. При создании - 1. Дальше при каждом таком alter - +1.
Номер формата записи пишется в запись при insert/update. Сервер по номеру формата определяет, какие столбцы на диске, в каком порядке, каких типов, и как из всего этого построить самую свежую структуру записи, если номер формата хранимой записи отличается от последнего формата. Форматы хранятся в rdb$formats.

Корюшка
Заказчик хочет, чтобы можно было динамически создавать справочники с заранее неизвестной структурой. Много денег.


Если прямо так и хочет, то это ахинея полная. Я еще понимаю, когда заказчик хочет добавлять какие-то столбцы в справочник, но все равно путем их обрабатывать в программе кроме ввода/вывода не получится - программа то не знает, что заказчик имел в виду.
Конечно, если задача не стоит построить аналог Access на базе IB/FB.

И, собственно, заказчик бэкапить/ресторить базу вообще не собирается? 255 изменений структуры одной (!) таблицы - обычно вполне достаточно, если таблицу модифицирует не дятел. Кроме того, это ограничение не фатальное, и после рестора можно продолжать "долбить".

Как получать номера форматов - написано в www.ibase.ru/devinfo/sysqry.htm
Корюшка
Дата: 11.09.2005 17:18:37
Ой, опасно-то как, оказывается...
Все изменения - либо в одной транзакции, либо одним длинным "Alter" для каждой таблицы. И шатдаун всех других пользователей... И данные не модифицировать до подтверждения транзакции, меняющей структуру...
И контролировать оставшееся число допустимых изменений. Совсем весело.

И СУБД менять не хочется...
Kull Damned
Дата: 11.09.2005 17:20:33
Корюшка
Заказчик хочет, чтобы можно было динамически создавать справочники с заранее неизвестной структурой.
При очень большом желании можно заняться проктологией и хранить справочники в плоских таблицах. Но еще раз повторюсь - это проктология.

Posted via ActualForum NNTP Server 1.3

Kull Damned
Дата: 11.09.2005 17:22:00
И СУБД менять не хочется...
Совет бесплатный: меняй пока не поздно. Каждой задаче - свой инструмент.

Posted via ActualForum NNTP Server 1.3

Корюшка
Дата: 11.09.2005 17:31:52
kdv
версия таблицы растет сразу, при alter table, если alter table меняет структуру таблицы. При создании - 1. Дальше при каждом таком alter - +1.

Может, я что-то недопонимаю, но вот только что проверено - версия таблички увеличивается только в конце транзакции, даже если сделать 25 раз подряд Alter - то после подтверждения транзакции версия вырастет только на 1.

kdv

Если прямо так и хочет, то это ахинея полная. Я еще понимаю, когда заказчик хочет добавлять какие-то столбцы в справочник, но все равно путем их обрабатывать в программе кроме ввода/вывода не получится - программа то не знает, что заказчик имел в виду.

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

Конечно, если задача не стоит построить аналог Access на базе IB/FB.

Ох. :( Вот и я о том же.

kdv

И, собственно, заказчик бэкапить/ресторить базу вообще не собирается? 255 изменений структуры одной (!) таблицы - обычно вполне достаточно, если таблицу модифицирует не дятел. Кроме того, это ограничение не фатальное, и после рестора можно продолжать "долбить".

Ну да, у меня сил не хватило "руками" довести базу до состояния "Ой, уже 255!"
kdv

Как получать номера форматов - написано в www.ibase.ru/devinfo/sysqry.htm

Спасибо, уже.
hvlad
Дата: 11.09.2005 18:51:24
Корюшка
Заказчик хочет, чтобы можно было динамически создавать справочники с заранее неизвестной структурой
Это требование не имеет никакого отношения к изменениям стр-ры БД.
Если мозги есть, конечно...

PS: KD не спит