Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получение данных работы триггера / 20 сообщений из 20, страница 1 из 1
15.04.2016, 13:58
    #39216605
Beton-Karton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Добрый день!

Есть таблица Table1
id: inetger;
name: varchar(100);

есть генератор table1_id

к таблице есть триггер before_insert
new.id=gen_id(table1_id,1);

На клиенте такой запрос insert into table1(name) values('XXX');

Всё отлично работает, триггер срабатывает, id генерируется. Но есть необходимость получать значение этого new.id обратно в клиента.
Какие могут быть варианты, чтобы не делать новый запрос?

Спасибо
...
Рейтинг: 0 / 0
15.04.2016, 14:01
    #39216608
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
RTFM: RETURNING
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 14:01
    #39216610
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
...
Рейтинг: 0 / 0
15.04.2016, 14:21
    #39216624
Beton-Karton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
не пойму как на клиенте обработать полученный результат.

если q1.sql=' insert into table1(name) values('XXX') returning id';
это id параметром что-ли q1 будет?
...
Рейтинг: 0 / 0
15.04.2016, 14:31
    #39216636
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Hello, Beton-karton!
You wrote on 15 апреля 2016 г. 14:31:24:

Beton-karton> это id параметром что-ли q1 будет?
это зависит от того, какими компонентами (или иными средствами доступа) ты пользуешься в программе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 14:32
    #39216639
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Beton-Kartonэто id параметром что-ли q1 будет?
Ты не поверишь, но результаты работы любого запроса возвращаются как поля.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 14:36
    #39216641
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Hello, Dimitry Sibiryakov!
You wrote on 15 апреля 2016 г. 14:35:56:

Dimitry Sibiryakov> Ты не поверишь, но результаты работы любого запроса возвращаются как поля.
не нужно натягивать собственную сову на соседский глобус васюкинского района.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 14:41
    #39216647
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Мимопроходящийэто зависит от того, какими компонентами (или иными средствами
доступа) ты пользуешься в программе.
Нужно быть очень проктостоматологически ориентированным чтобы данные из выходной SQLDA
возвращать через одну дырку для SELECT и через совсем другую для любых остальных запросов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 14:41
    #39216648
Beton-Karton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
у меня D5 с FB 2.0 через DBE

для компонента TQuery запрос

insert into products(name) values ('A12345') returning id исполняется, но обращение query1.fieldbyname('id').value не допускается
...
Рейтинг: 0 / 0
15.04.2016, 14:43
    #39216653
Beton-Karton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
точнее запрос такой insert into products(name) values ('A12345') returning (id)
а запрос insert into products(name) values ('A12345') returning (id) into id ваще не работает
...
Рейтинг: 0 / 0
15.04.2016, 14:46
    #39216656
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Beton-Karton,

bde умер в 2002 году, и разумеется, returning он не понимает. Так что с получением id, сгенерированного в триггере - облом.
http://www.ibase.ru/generator/
...
Рейтинг: 0 / 0
15.04.2016, 14:46
    #39216657
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Beton-Kartonобращение query1.fieldbyname('id').value не допускается

Прямо так и говорит "не допускаю"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 14:48
    #39216658
Beton-Karton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
kdv,

похоже на то, а жаль, я уже нахерачил триггеров
...
Рейтинг: 0 / 0
15.04.2016, 14:49
    #39216661
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Hello, Dimitry Sibiryakov!
You wrote on 15 апреля 2016 г. 14:48:03:

Dimitry Sibiryakov> Нужно быть очень проктостоматологически ориентированным чтобы данные из выходной SQLDA
> возвращать через одну дырку для SELECT и через совсем другую для любых остальных запросов.вылазь из бункера иногда.
шоб посмотреть на мир вокруг.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 14:50
    #39216662
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Hello, Beton-karton!
You wrote on 15 апреля 2016 г. 14:50:21:

Beton-karton> похоже на то, а жаль, я уже нахерачил триггеровтеперь будешь херачить процедуры...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 14:57
    #39216670
Beton-Karton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Мимопроходящий,

угу. С любом случае, спасибо
...
Рейтинг: 0 / 0
15.04.2016, 15:37
    #39216723
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Мимопроходящийтеперь будешь херачить процедуры...
Ты не поверишь, но с точки зрения API, insert returning и есть процедура. Так что если у
аффтара ничего не получается с ним, то и с процедурами будет облом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 15:43
    #39216728
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Hello, Dimitry Sibiryakov!
You wrote on 15 апреля 2016 г. 15:42:30:

Dimitry Sibiryakov> Ты не поверишь, но с точки зрения API, insert returning и есть процедура.
> Так что если у аффтара ничего не получается с ним, то и с процедурами будет облом.иди уже хлебни амброзии
восстанови кислотно-щелочной баланс
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.04.2016, 16:01
    #39216765
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
Beton-Karton,

попробуй этот запрос как-нибудь через компонент-процедуру выполнить, хотя бы внутр EXECUTE BLOCK

но воообще с BDE пора слезать, эта лошадь давно умерла

почему бы хотя бы для этих запросов не использовать другую библиотеку? Сделай два параллельных подключения двум билиотеками. Старый код пусть ПОКА тянет через BDE, а исправленный код будешь потихоньку переводить на что-то чуть более живое, процедуру за процедурой
...
Рейтинг: 0 / 0
18.04.2016, 15:49
    #39218309
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных работы триггера
как раз попалось - сосуществование BDE с современными библиотеками в одном соединении

https://web.archive.org/web/20090918163138/http://konstb.newmail.ru/interbase/hints.html

Хотя можно и два соедлинения делать, почему бы нет....
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получение данных работы триггера / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]