версия таблицы растет сразу, при alter table, если alter table меняет структуру таблицы. При создании - 1. Дальше при каждом таком alter - +1.
Номер формата записи пишется в запись при insert/update. Сервер по номеру формата определяет, какие столбцы на диске, в каком порядке, каких типов, и как из всего этого построить самую свежую структуру записи, если номер формата хранимой записи отличается от последнего формата. Форматы хранятся в rdb$formats.
Корюшка |
Заказчик хочет, чтобы можно было динамически создавать справочники с заранее неизвестной структурой. Много денег. |
Если прямо так и хочет, то это ахинея полная. Я еще понимаю, когда заказчик хочет добавлять какие-то столбцы в справочник, но все равно путем их обрабатывать в программе кроме ввода/вывода не получится - программа то не знает, что заказчик имел в виду.
Конечно, если задача не стоит построить аналог Access на базе IB/FB.
И, собственно, заказчик бэкапить/ресторить базу вообще не собирается? 255 изменений структуры одной (!) таблицы - обычно вполне достаточно, если таблицу модифицирует не дятел. Кроме того, это ограничение не фатальное, и после рестора можно продолжать "долбить".
Как получать номера форматов - написано в www.ibase.ru/devinfo/sysqry.htm