Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
keymaster
- Сообщения: 9
- Зарегистрирован: 11 авг 2006, 18:09
Сообщение
keymaster » 18 авг 2006, 20:09
Реально ли это в IB/FB?
В записи есть поле ID-автоинкремент.
Как можно узнать значение ID у только что вставленной записи?
-
pastor
- Сообщения: 12
- Зарегистрирован: 17 мар 2005, 16:27
Сообщение
pastor » 21 авг 2006, 10:40
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
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 21 авг 2006, 10:45
2 pastor:
Прежде чем такое советовать, необходимо узнать, какой у него FB, и в процедуре ли он хочет получать значения.
-
pastor
- Сообщения: 12
- Зарегистрирован: 17 мар 2005, 16:27
Сообщение
pastor » 21 авг 2006, 14:41
WildSery писал(а):2 pastor:
Прежде чем такое советовать, необходимо узнать, какой у него FB, и в процедуре ли он хочет получать значения.
прежде чем говорить за процедуры, прочитайте описание FIBP

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

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

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

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

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