powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Возможен ли в FB 1.5.1 запрос Insert + Select???
25 сообщений из 39, страница 1 из 2
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647873
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть есть таблица test.
В Oracle можно реализовать следующий SQL запрос на клиенте:
Код: plaintext
1.
insert into test (pole) values('значение')
select Генератор.curval into :ID_записи from dual

А в FB такое возможно???
Код: plaintext
1.
insert into test (pole) values('значение')
select gen_id(Генератор, 0 ) from rdb$database
Как???
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647875
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получить то что хочешь?
поподробнее...
а то что-то с утра туго соображаю :)
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647877
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srf2000получить то что хочешь?
ID вставленной записи в запросе insert-а, без дополнительного запроса select и это все на клиенте
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647881
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получи значение генератора из клиента и его вставляй в новую запись...
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647886
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srf2000получи значение генератора из клиента и его вставляй в новую запись...
Не понял???
Уточню, сейчас выполняю запросы:
1) Делаю insert
2) Получаю ID вставленной записи
В Oracle это все реализуется в одном запросе
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647888
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор


CREATE GENERATOR myGen

CREATE TRIGGER myTrg FOR myTab
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
IF (new.myFld IS NULL) THEN new.myFld = GEN_ID(myGen, 1);
END

CREATE PROCEDURE myPrc RETURNS (myFld INTEGER)
AS BEGIN
myFld = GEN_ID(myGen, 1);
END


При добавлении из клиента myFld будет автоматически заполняться из myGen если не задано. (В этом случае это поле ExternalCalc)

Или сам его береш из myPrc...
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647895
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ololПри добавлении из клиента myFld будет автоматически заполняться из myGen если не задано. (В этом случае это поле ExternalCalc)
Или сам его береш из myPrc...
Посмотрите пример для реализации поставленной задачи в Oracle - ЭТО ОДИН ЕДИНСТВЕННЫЙ ЗАПРОС
Генератор есть, ключевое поле тоже, триггер тоже, а ХП мне ВАЩЕ не нужна ради ДВУХ ЗАПРОСОВ
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647899
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. получи значение генератора.
2. сделай инсерт

в чем проблема то?
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647902
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srf2000в чем проблема то?
Еще раз повторю: нужно в одном SQL-запросе это сделать (и insert и select)!!!
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647911
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор

Если хочеш одним запросом то сделай ХП которая будет вставлять записи, присваивая полям данные и возвращать ее ID.

Может тебе еще нужно что-то типа:
insert into test (pole) values('значение') IN CREATE TABLE...
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647914
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ololЕсли хочеш одним запросом то сделай ХП которая будет вставлять записи, присваивая полям данные и возвращать ее ID.
Уж лучше тоды я 2 запроса на клиенте напишу

olol Может тебе еще нужно что-то типа:
insert into test (pole) values('значение') IN CREATE TABLE...
Нет, таким гемором не занимаюсь... возможно пока )))
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647917
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в одном не сделаешь
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647978
Фотография Castor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> wolverin
А что, триггера Before insert на поле ID в табл. test нет?
если есть то вообще не нужно ничего руками выбирать/вставлять в ID
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32647989
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin srf2000получи значение генератора из клиента и его вставляй в новую запись...
Не понял???
Уточню, сейчас выполняю запросы:
1) Делаю insert
2) Получаю ID вставленной записи
В Oracle это все реализуется в одном запросе
То как ты написал в первом посте - это ДВА запроса (одним делается по другому). Скорее всего компоненты доступа позволяли в одном Query (компонент и запрос разные вещи!) выполнять скрипт, т.е. несколько запросов.
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648012
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СерегаТо как ты написал в первом посте - это ДВА запроса (одним делается по другому). Скорее всего компоненты доступа позволяли в одном Query (компонент и запрос разные вещи!) выполнять скрипт, т.е. несколько запросов.
Уважаемый Вы с Oracle и расширением PL-SQL знакомы???
Если нет, то первый пример - это ОДИН ЗАПРОС , и компоненты доступа тут ваще не причем.
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648071
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас в FB нет выполнения блока операторов. Поэтому то, что ты хочешь, сделать нельзя. Соответственно есть два решения. Либо через SP, либо выдергивать значение генератора на клиента, а затем вставлять его. Это, кстати, автоматом реализовано в таких компонентах доступа как IBX и FIBPlus (по поводу других - не в курсе).
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648116
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛентяйСейчас в FB нет выполнения блока операторов.
Спасибо, буду искать другие варианты
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648132
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё в оракле есть INSERT ... RETURNING и что ? ;)

В следующей версии FB будет возможность выполнять анонимные PSQL блоки (уже реализовано) и INSERT ... RETURNING (ещё не реализовано, но планируется).

Сейчас нужно или писать процедуру, или сначала дёргать генератор, а потом вставлять запись.
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648145
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А такой вариант не катит?

Код: plaintext
insert into new_table select gen_id(sq_total,   1 ) from rdb$database
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648160
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverinВ Oracle можно реализовать следующий SQL запрос на клиенте:
Код: plaintext
1.
insert into test (pole) values('значение')
select Генератор.curval into :ID_записи from dual
Кстати - это достаточно кривой код, можно огрести - и оракле не спасёт ;)
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648168
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Погарячился я, ему ж идентификатор надо получить..
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648246
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladВ следующей версии FB будет возможность выполнять анонимные PSQL блоки.
Кто такие??? Может у вас есть Тынц???

hvladКстати - это достаточно кривой код, можно огрести - и оракле не спасёт ;)
Чем код криФ хотел бы узнать, если не сложно???
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648273
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverinУважаемый Вы с Oracle и расширением PL-SQL знакомы???
Если нет, то первый пример - это ОДИН ЗАПРОС , и компоненты доступа тут ваще не причем.
Pl-SQL это, уважаемый, не расширение (чего расширяется то?) а процедурный язык. А то что вы написали хоть где будет двумя запросами. И то что они идут последовательно дела не меняет. Вариант с одним запросом для Оракла написал hvlad.
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648330
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverinКто такие??? Может у вас есть Тынц??? Тынцев у нас всегда есть ;)

wolverinЧем код криФ хотел бы узнать, если не сложно???Не сложно - Генератор.curval не лучший способ вставить новое значение в таблицу ;)
Или нужно всегда вставлять одно и то же ? ;)
...
Рейтинг: 0 / 0
Возможен ли в FB 1.5.1 запрос Insert + Select???
    #32648434
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНе сложно - Генератор.curval не лучший способ вставить новое значение в таблицу ;)
Или нужно всегда вставлять одно и то же ? ;)
Да, нет. Все тут нормально. Некст вычисляется в тригере при вставке, а селест читает уже сгенеренное значение для возврата клиенту. Я так понял. И оба варианта (для Оракла и ИБ) полностью идентичны друг другу по сути.
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Возможен ли в FB 1.5.1 запрос Insert + Select???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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