Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IBQuery и GeneratorField [D7]


REA ©   (2008-07-16 12:21:00) 

Уважаемые мастера, подскажите как использовать связку TIBQuery и GeneratorField, если требуется вставить запись (insert) и получить значение генератора (например до вставки).

По идее значение GeneratorField должно присваиваться полю OnNewRecord, но там нет ни полей как таковых (только параметры Insert) ни вызова Append.

Каким образом можно настроить GeneratorField, чтобы при вставке записи в некий параметр Insert попадало требуемое значение генератора?


Поросенок Винни-Пух   (2008-07-16 18:03:00) [1]

Получить генератор запросом я могу,

Но хочется не запросом, а телепатией?


Поросенок Винни-Пух   (2008-07-16 18:02:00) [2]

См. выше - желательно использовать компоненты

А кто-то  запрещает?


REA   (2008-07-16 18:00:00) [3]

>select gen_id(:p_gen_name,:p_step)

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


REA   (2008-07-16 17:58:00) [4]

>как используя бензопилу и бензин получить елку через оптический прицел

не вижу елки и пилы. задача проще некуда - все тоже самое, что в IBDataSet, но без Select. Вместо 10 бесполезных постов уже можно было дать несколько решений.


Поросенок Винни-Пух   (2008-07-16 17:56:00) [5]

select gen_id(:p_gen_name,:p_step)


Правильный$Вася   (2008-07-16 17:43:00) [6]


> перефразирую: как используя компонент TIBQuery и запрос Insert получить
> значение генератора для этого запроса через GeneratorField?

перефразирую: как используя бензопилу и бензин получить елку через оптический прицел

> по существу вопроса пожалуйста

уж существеннее некуда
готовые решения только в "начинающим"


REA   (2008-07-16 17:21:00) [7]

>ответ: никак!

тогда так: какие еще существуют малозатратные способы (с точки зрения производительности и кодирования) получения значения генератора для Insert?

вариант с IBDataSet мне не кажется очень хорошим, т.к. там требуется открывать DataSet (select). Использование генератора "в лоб" - т.е. получением запросом из системной таблицы тоже не лучший вариант - хочется чтобы работали компоненты, поскольку для этого их и придумывали.


Поросенок Винни-Пух   (2008-07-16 16:31:00) [8]

Перефразирую вопрос: как используя компонент TIBQuery и запрос Insert получить значение генератора для этого запроса через GeneratorField?

ответ: никак!


Поросенок Винни-Пух   (2008-07-16 16:29:00) [9]

стандартный sql на получение значения генератора на клиенте.
в факе есть, в доке есть, везде есть.
удачи.


REA   (2008-07-16 16:25:00) [10]

>у него там insert набабахан, а чувак ждет прихода генератора.
именно так. открывать ничего не нужно - нужно вставить сгененрированное значение.


REA   (2008-07-16 16:23:00) [11]

>Какой тогда тебе OnNewRecord

да любой штатный способ получения значения генератора подойдет.
Перефразирую вопрос: как используя компонент TIBQuery и запрос Insert получить значение генератора для этого запроса через GeneratorField?


Поросенок Винни-Пух   (2008-07-16 16:22:00) [12]

ой, мама.
у него там insert набабахан, а чувак ждет прихода генератора.


Поросенок Винни-Пух   (2008-07-16 16:21:00) [13]

2) SQL запрос <> select

<Цитата>


Это пипец.
Какой тогда тебе OnNewRecord?


REA   (2008-07-16 16:19:00) [14]

>теперь подумай, попробуй повтори цикл сначала

по существу вопроса пожалуйста

>так и происходит если выбрана опция на OnNewRecord генерить значение

генератор вызывает Apply в том случае, если генератору присвоено поле и Dataset открыт. В данном случае открыть его не удается потому что 1) это не нужно 2) SQL запрос <> select


Правильный$Вася   (2008-07-16 16:15:00) [15]


> Уже успел посмотреть все что можно про сабж. Просмотрел
> исходники.

теперь подумай, попробуй
повтори цикл сначала


Поросенок Винни-Пух   (2008-07-16 16:14:00) [16]

По идее значение GeneratorField должно присваиваться полю OnNewRecord

так и происходит если выбрана опция на OnNewRecord генерить значение


REA   (2008-07-16 16:13:00) [17]

Уже успел посмотреть все что можно про сабж. Просмотрел исходники. Иначе бы не спрашивал.


Johnmen   (2008-07-16 16:04:00) [18]

Ну не хочешь, не ходи. Дело твоё...


REA   (2008-07-16 15:59:00) [19]

Нужен ответ на конкретный вопрос. Вопрос не про генераторы, а про TIBQuery.


Johnmen   (2008-07-16 15:10:00) [20]

сходить на http://www.ibase.ruи почитать про генераторы
там и примеры будут...


Наверх

Титульная страница Поиск, карта сайта Написать письмо