powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireDac attempted update during read-only transaction при обработке исключения
13 сообщений из 13, страница 1 из 1
FireDac attempted update during read-only transaction при обработке исключения
    #39924950
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть транзакции
trRead:
read
nowait
rec_version
read_committed

trWrite:
write
nowait
rec_version
read_committed


запрос процедуры. в процедуре есть обработка исключения.
если по условию процедуры исключения не возникает - запрос процедуры отрабатывает корректно.

если обрабатывается исключение, в IBExpert'е сообщение прописанное в исключении появляется, но в приложении на FireDac даже в дизайнере при execute появляется сообщение об ошибке "attempted update during read-only transaction", а не то которое прописано в тексте исключения из базы данных.

может кто знает как победить? (InterBase 7.5, так уж сложилось, в настоящий момент переписываю проект для дальнейшего перехода на FireBird)/
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39924967
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP в процедуре есть обработка исключения.

как именно оно обрабатывается? Небось факт исключения пишется в некую таблицу?
Так вот нельзя так делать в read only транзакции
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925020
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему-то в старом проекте на обычных IBX отрабатывает, да и IBEXpert показывает окошко с сообщением, а на FireDac засада.
Гуру подскажите как победить...или придётся все процедуры переписывать тоже? :(

create procedure srr_place_status
returns (
id integer,
name varchar(100)
)
AS
declare variable CC integer;
begin
CC =0;
IF (CC=0) THEN EXECUTE PROCEDURE EX ('Сообщение об ошибке.');
end


create procedure ex (
e varchar(78))
AS
BEGIN
UPDATE rdb$exceptions
SET rdb$message=:E
WHERE rdb$exception_name='EX_TEMP';
EXCEPTION EX_TEMP;
END


CREATE EXCEPTION EX_TEMP 'заготовка текста сообщения';
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925022
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP,

видать мой ХШ шикарен. Смотри что я описал выше.

За модификацию системных таблиц положено линейкой по пальцам.
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925023
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полностью поддерживаю про линейку и пальцы, но в том то и дело, что в настоящий момент переписываю это "чудо" для перехода на FB.
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925039
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP,

сообщение об ошибке ясно и понятно говорит "нельзя модифицировать таблицы в read only транзакции".
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925073
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNPда и IBEXpert показывает окошко с сообщением
никак не пойму, при чем тут IBExpert. Вы в нём тоже для выполнения запросов явно задаете read-only транзакцию?
Тогда там будет та же самая ошибка.
Какое-то странное упорство. В read-only разрешается только читать. Исключением является - модификация генераторов, операции, создающие временные блобы, работа с GTT. Другие операции write (одной из которых является update), запрещены.
Надо write, тогда убирайте read-only.
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925162
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv, а где убрать? в FireDac ReadOnly убрано
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925166
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP,

значит оно где-то глубже сидит. Ищи.
К слову, в Firebird есть куда более простой способ переопределения сообщения для исключений безо всяких модификаций системных таблиц.
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925221
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP,

Замени процедуру на такую и забудь модифицирование системных таблиц (или вызов подними выше)

Код: sql
1.
2.
3.
4.
5.
6.
create procedure ex (
e varchar(78))
AS
BEGIN
  EXCEPTION EX_TEMP :E;
END
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39925387
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шавлюк Евгений,
СПС, всё-таки придётся "допиливать" и базу
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39928846
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шавлюк Евгений,

create procedure ex (
e varchar(78))
as
begin
/*update rdb$exceptions
set rdb$message = :e
where rdb$exception_name = 'EX_TEMP';
exception ex_temp;*/
EXCEPTION EX_TEMP :E;
end

-----------------------------------

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 9, char 17.
:.
...
Рейтинг: 0 / 0
FireDac attempted update during read-only transaction при обработке исключения
    #39928852
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterBase этого не умеет.
только FireBird
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireDac attempted update during read-only transaction при обработке исключения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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