Страница 1 из 1
Как получить ID добавленой записи?
Добавлено: 18 авг 2006, 20:09
keymaster
Реально ли это в IB/FB?
В записи есть поле ID-автоинкремент.
Как можно узнать значение ID у только что вставленной записи?
Добавлено: 18 авг 2006, 21:09
Merlin
Re: Как получить ID добавленой записи?
Добавлено: 21 авг 2006, 10:40
pastor
keymaster писал(а):Реально ли это в IB/FB?
В записи есть поле ID-автоинкремент.
Как можно узнать значение ID у только что вставленной записи?
Код: Выделить всё
INSERT INTO T1 (F1, F2)
VALUES (:F1, :F2)
RETURNING F1, F2 INTO :V1, :V2;
Firebird\doc\sql.extensions\README.returning.txt
Добавлено: 21 авг 2006, 10:45
WildSery
2 pastor:
Прежде чем такое советовать, необходимо узнать, какой у него FB, и в процедуре ли он хочет получать значения.
Добавлено: 21 авг 2006, 14:41
pastor
WildSery писал(а):2 pastor:
Прежде чем такое советовать, необходимо узнать, какой у него FB, и в процедуре ли он хочет получать значения.
прежде чем говорить за процедуры, прочитайте описание FIBP

Добавлено: 21 авг 2006, 15:00
CyberMax
2 WildSery . При чем тут процедуры? Мной returning используется в обыкновенных запросах, чтобы избежать лишнего обращения к генератору датасетом.
2 pastor. Больше информативности в постах. Что написано в описании FIB+, что не указано в статье про генераторы (даже косвенно)?
Добавлено: 21 авг 2006, 15:08
WildSery
pastor писал(а):прежде чем говорить за процедуры, прочитайте описание FIBP

Готов почитать. А где конкретно? FIBP - это FIBPlus?
Добавлено: 21 авг 2006, 15:41
pastor
WildSery писал(а):Готов почитать. А где конкретно? FIBP - это FIBPlus?
да
pastor писал(а):Firebird\doc\sql.extensions\README.returning.txt
и поддержку этого фибами, в доке по фибам (сам давно читаю только WhatNew)
Добавлено: 21 авг 2006, 17:43
CyberMax
2
Pastor. При чем здесь FIB+ и поддержка им returning? Прошу
второй раз дать исчерпывающий ответ, а не ссылку на ссылку на доку

.
Re: Как получить ID добавленой записи?
Добавлено: 22 авг 2006, 20:19
Фанис
keymaster писал(а):Реально ли это в IB/FB?
В записи есть поле ID-автоинкремент.
Как можно узнать значение ID у только что вставленной записи?
В IBX в Query есть поле GeneratorField - определи необходимый плюс пропиши ApplyEvent->On new record. Сие дернет gen_id и пропишет id в поле. И все. Хотя тема генератора уже потихоньку достает

))
Добавлено: 23 авг 2006, 13:43
CyberMax
2
kdv. Дмитрий, в статье про генераторы тема установки ID через датасет почти не раскрыта. Плюс ошибка: в IBX используется GeneratorField, а в FIB+ AutoUpdateOptions, в котором уже GeneratorName.
P.S. Статье через три дня год исполняется с момента переписки

.
Добавлено: 23 авг 2006, 13:49
kdv
исправил на
"Такой же способ используется в компонентах IBX и FIBPlus - у IBDataSet есть метод GeneratorField, который позволяет обеспечить автоматическое присвоение нового номера столбцу первичного ключа записи как раз при помощи указанного оператора select, выполняемого библиотекой компонент "прозрачно". В FIBPlus та же самая функциональность устанавливается при помощи FIBDataSet.AutoUpdateOptions (GeneratorName)."