|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
есть транзакции 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)/ ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2020, 21:56 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
SergeyKNP в процедуре есть обработка исключения. как именно оно обрабатывается? Небось факт исключения пишется в некую таблицу? Так вот нельзя так делать в read only транзакции ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2020, 23:05 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
почему-то в старом проекте на обычных 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 'заготовка текста сообщения'; ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 08:19 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
SergeyKNP, видать мой ХШ шикарен. Смотри что я описал выше. За модификацию системных таблиц положено линейкой по пальцам. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 08:34 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
Полностью поддерживаю про линейку и пальцы, но в том то и дело, что в настоящий момент переписываю это "чудо" для перехода на FB. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 08:38 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
SergeyKNP, сообщение об ошибке ясно и понятно говорит "нельзя модифицировать таблицы в read only транзакции". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 09:50 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
SergeyKNPда и IBEXpert показывает окошко с сообщением никак не пойму, при чем тут IBExpert. Вы в нём тоже для выполнения запросов явно задаете read-only транзакцию? Тогда там будет та же самая ошибка. Какое-то странное упорство. В read-only разрешается только читать. Исключением является - модификация генераторов, операции, создающие временные блобы, работа с GTT. Другие операции write (одной из которых является update), запрещены. Надо write, тогда убирайте read-only. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 10:50 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
kdv, а где убрать? в FireDac ReadOnly убрано ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 13:13 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
SergeyKNP, значит оно где-то глубже сидит. Ищи. К слову, в Firebird есть куда более простой способ переопределения сообщения для исключений безо всяких модификаций системных таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 13:22 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
SergeyKNP, Замени процедуру на такую и забудь модифицирование системных таблиц (или вызов подними выше) Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 14:46 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
Шавлюк Евгений, СПС, всё-таки придётся "допиливать" и базу ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2020, 20:09 |
|
FireDac attempted update during read-only transaction при обработке исключения
|
|||
---|---|---|---|
#18+
Шавлюк Евгений, 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. :. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 12:36 |
|
|
start [/forum/topic.php?fid=40&msg=39925039&tid=1560437]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
131ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 236ms |
0 / 0 |