Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запись во временную таблицу из читающей транзакции / 4 сообщений из 4, страница 1 из 1
12.11.2018, 13:43
    #39731719
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись во временную таблицу из читающей транзакции
Привет всем.

FB 2.5.8 CS, компоненты доступа FIB+.

Параметры транзакции:
Код: powershell
1.
2.
3.
4.
read
nowait
rec_version
read_committed



В БД есть связка: таблица - процедура - вью
вью селектит из процедуры, процедура пишет в таблицу.
Скрипт под спойлером:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
create table T (
    ID  integer
);

set term ^ ;

create procedure P
returns (
   ID integer )
as
begin
  insert into T ( ID ) values ( 1 );

  select ID
    from T
    into :ID;

  suspend;

  delete from T;
end ^

set term ; ^

create or alter view V (
    ID )
as
select ID
  from P
;



Если в клиентском приложении попытаться сделать выборку из вью, получаем ошибку:
Код: powershell
1.
2.
3.
4.
Project Project4.exe raised exception class EFIBInterBaseError with message 'Form7.ds.SelectQuery:
The INSERT, UPDATE, DELETE, DDL or authorization statement cannot be executed because the transaction is inquiry only.
Attempted update during read-only transaction.
At procedure 'P' line: 6, col: 3.



Если таблицу поменять на временную,
Код: sql
1.
2.
3.
create global temporary table T (
    ID  integer
) on commit preserve rows;

то ошибки нет, запись в таблицу в рамках читающей транзакции производится.

Это так и должно быть?

С уважением, Polesov.
...
Рейтинг: 0 / 0
12.11.2018, 13:48
    #39731723
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись во временную таблицу из читающей транзакции
PolesovЭто так и должно быть?Да
...
Рейтинг: 0 / 0
12.11.2018, 13:52
    #39731728
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись во временную таблицу из читающей транзакции
hvlad, спасибо
...
Рейтинг: 0 / 0
14.11.2018, 17:53
    #39733147
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись во временную таблицу из читающей транзакции
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запись во временную таблицу из читающей транзакции / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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