powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вложенный запрос и обновление.
14 сообщений из 14, страница 1 из 1
Вложенный запрос и обновление.
    #39624474
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Прошу помощи. Вопрос может и глупый но я не знаю как решить.
Используется: Delphi+Firebird 2.5+FibPlus+EhDBGrid.
FIBDataSet.SelectSql:=
Код: sql
1.
2.
3.
4.
5.
select goods.good_id,
       goods.good_name,
       goods.manufactor_id,
       (select manufactors.manufactor_name from manufactors where manufactors.manufactor_id = goods.manufactor_id) as manuf_name,
from goods


Юзается 2 транзакции. AutoCommit=false.

Делаю Insert,
задаю good_id (ключ),
задаю manufactor_id
Делаю Post. (транзакциия на апдейт еще не закоммичена).
После этого хочу чтобы в "manuf_name" показало мне результат вложенного запроса.
Как так сделать до коммита?
Как-то так.

Спасибо!
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624480
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironico,

Refresh?
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624492
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Увы не работает.
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624493
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoЮзается 2 транзакции.
Хочется без подтверждения одной транзакции увидеть изменения в другой?
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624495
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается да.
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624508
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoПолучается да.
Увы.
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624520
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironico,

В процедуру завернуть не получится?
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624535
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Fib+ с insert returning не подружили ещё ?
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624539
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Придется от вложенного отказаться, отдельно вычитаю.
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624609
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoДелаю Insert,
задаю good_id (ключ),
задаю manufactor_id
Делаю Post. (транзакциия на апдейт еще не закоммичена).
После этого хочу чтобы в "manuf_name" показало мне результат вложенного запроса.
Как так сделать до коммита?
Как-то так.

Спасибо!Если транзакция с insert не завершена, то все изменения доступны только в этой транзакции и другим не видны.
Ключ good_id можно и не задавать вручную, если он инициализируется триггером из генератора. Пример:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE GENERATOR goods__GEN;

SET TERM ^;
CREATE OR ALTER TRIGGER goods__TR_BIU
  FOR goods
  BEFORE INSERT OR UPDATE
  POSITION 0
AS
BEGIN
  IF (NOT(NEW.good_id IS NOT NULL
      AND NEW.good_id <= GEN_ID(goods__GEN,0))) THEN
    NEW.good_id = GEN_ID(goods__GEN, 1);
END^
SET TERM ;^

тогда в компоненты FIBDataSet на вставку записи достаточно прописать
Код: sql
1.
2.
3.
4.
INSERT INTO goods (good_name, manufacture_id)
  VALUES (:good_name, :manufacture_id)
  RETURNING good_id
  INTO: good_id

и после этого, в этой же транзакции выполнить интересующий тебя запрос на выборку. Зачем лепить вторую транзакцию, если тебе надо смотреть изменения, сделанные в первой транзакции?
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624637
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

я не в курсе состояния дел в Fib+, но если оно понимает INSERT RETURNING (на что намекает код выше),
то почему не получить "manuf_name" сразу (так же как и good_id) ?
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624653
MikeDD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironico, попробуй RefreshTransactionKind установить в tkUpdateTransaction, а в Options установить poRefreshAfterPost.
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624710
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladrdb_dev,

я не в курсе состояния дел в Fib+, но если оно понимает INSERT RETURNING (на что намекает код выше),
то почему не получить "manuf_name" сразу (так же как и good_id) ?Может потому, что в таблице goods такого поля нет? ;)
...
Рейтинг: 0 / 0
Вложенный запрос и обновление.
    #39624762
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devhvladrdb_dev,

я не в курсе состояния дел в Fib+, но если оно понимает INSERT RETURNING (на что намекает код выше),
то почему не получить "manuf_name" сразу (так же как и good_id) ?Может потому, что в таблице goods такого поля нет? ;)тьфу, действительно :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вложенный запрос и обновление.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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