-
Уважаемые мастера, подскажите как использовать связку TIBQuery и GeneratorField, если требуется вставить запись (insert) и получить значение генератора (например до вставки).
По идее значение GeneratorField должно присваиваться полю OnNewRecord, но там нет ни полей как таковых (только параметры Insert) ни вызова Append.
Каким образом можно настроить GeneratorField, чтобы при вставке записи в некий параметр Insert попадало требуемое значение генератора?
-
-
Нужен ответ на конкретный вопрос. Вопрос не про генераторы, а про TIBQuery.
-
Ну не хочешь, не ходи. Дело твоё...
-
Уже успел посмотреть все что можно про сабж. Просмотрел исходники. Иначе бы не спрашивал.
-
По идее значение GeneratorField должно присваиваться полю OnNewRecord
так и происходит если выбрана опция на OnNewRecord генерить значение
-
> Уже успел посмотреть все что можно про сабж. Просмотрел
> исходники.
теперь подумай, попробуй
повтори цикл сначала
-
>теперь подумай, попробуй повтори цикл сначала
по существу вопроса пожалуйста
>так и происходит если выбрана опция на OnNewRecord генерить значение
генератор вызывает Apply в том случае, если генератору присвоено поле и Dataset открыт. В данном случае открыть его не удается потому что 1) это не нужно 2) SQL запрос <> select
-
2) SQL запрос <> select
<Цитата>
Это пипец.
Какой тогда тебе OnNewRecord?
-
ой, мама.
у него там insert набабахан, а чувак ждет прихода генератора.
-
>Какой тогда тебе OnNewRecord
да любой штатный способ получения значения генератора подойдет.
Перефразирую вопрос: как используя компонент TIBQuery и запрос Insert получить значение генератора для этого запроса через GeneratorField?
-
>у него там insert набабахан, а чувак ждет прихода генератора.
именно так. открывать ничего не нужно - нужно вставить сгененрированное значение.
-
стандартный sql на получение значения генератора на клиенте.
в факе есть, в доке есть, везде есть.
удачи.
-
Перефразирую вопрос: как используя компонент TIBQuery и запрос Insert получить значение генератора для этого запроса через GeneratorField?
ответ: никак!
-
>ответ: никак!
тогда так: какие еще существуют малозатратные способы (с точки зрения производительности и кодирования) получения значения генератора для Insert?
вариант с IBDataSet мне не кажется очень хорошим, т.к. там требуется открывать DataSet (select). Использование генератора "в лоб" - т.е. получением запросом из системной таблицы тоже не лучший вариант - хочется чтобы работали компоненты, поскольку для этого их и придумывали.
-
> перефразирую: как используя компонент TIBQuery и запрос Insert получить
> значение генератора для этого запроса через GeneratorField?
перефразирую: как используя бензопилу и бензин получить елку через оптический прицел
> по существу вопроса пожалуйста
уж существеннее некуда
готовые решения только в "начинающим"
-
select gen_id(:p_gen_name,:p_step)
-
>как используя бензопилу и бензин получить елку через оптический прицел
не вижу елки и пилы. задача проще некуда - все тоже самое, что в IBDataSet, но без Select. Вместо 10 бесполезных постов уже можно было дать несколько решений.
-
>select gen_id(:p_gen_name,:p_step)
См. выше - желательно использовать компоненты. Получить генератор запросом я могу, только неужели для такой тривиальной задачи уже не написан код?
-
См. выше - желательно использовать компоненты
А кто-то запрещает?
-
Получить генератор запросом я могу,
Но хочется не запросом, а телепатией?