Re[2]: проблема с генератором (Firebird+IBX)
От: sax0n Украина  
Дата: 17.04.08 04:40
Оценка:
Здравствуйте, Пацак, Вы писали:

П>Здравствуйте, sax0n, Вы писали:


S>>Где нужно бубном потрясти, чтобы не было такого?


П>Два вопроса:

П>1. Сколько строк в таблице table?
таблица пустая — обнулена
П>2. Что, все-таки возвращается — null или 0 (на всякий случай: это разные вещи).
судя по IBExpress запросу — null

П>Если строк — ни одной, а возвращается null, то это в общем-то нормальное поведение. Обычно для получения следующего значения генератора пользуются запросом к системной таблице rdb$database, в которой гарантированно хранится одна запись.

П>Типа такого:

П>
П>select gen_id(generator_name, 1) from rdb$database;
П>


П>PS Также хочу заметить, что собирать этот запрос из частей каждый раз, когда требуется следующее значение генератора — жуткий моветон, т.к. на его prepare времени, скорее всего, потратится на порядок больше, чем на исполнение и получение одного числа клиентом.


Как еще можно тогда записать ячейку в базу и при этом знать ее номер? Вариант с триггером в данном случае мне не подходит в виду того, что я так и не получаю номера ячейки.. Поэтому приходится жертвовать временем...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.