|
|
|
Firedac master-detail зависшая транзакция
|
|||
|---|---|---|---|
|
#18+
Добрый день. Вопрос в большей степени к Dmitry Arefiev Используется среда разработки Embarcadero® Delphi 10.1 Berlin Version 24.0.25048.9432 БД: Firebird 2.5 На сервере приложений при помощи FireDac (FDQuery) используется связка Master-detail (FDQuery1 -> DataSource -> FDQuery2) На клиент все это дело передается через один TDataSetProvider. На клиенте разворачивается соответственно в ClientDataSet1 (master) и ClientDataSet2 (detail) Проблема возникает если в master таблице нет записей. В этом случае возникает зависшая транзакция и все изменения начинают происходить в рамках этой транзакции, соответственно в БД они записываются после закрытия клиента. Может у FDQuery есть какая-то волшебная галочка, которая исправляет эту проблему? Я сделал тестовые БД и пример, который воспроизводится в дизайн-тайме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2019, 15:22 |
|
||
|
Firedac master-detail зависшая транзакция
|
|||
|---|---|---|---|
|
#18+
транзакции нужно коммитить и откатывать тогда, когда это нужно. а не надеяться на "неестественный интеллект" библиотеки доступа. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2019, 15:38 |
|
||
|
Firedac master-detail зависшая транзакция
|
|||
|---|---|---|---|
|
#18+
Для воспроизведения необходимо в дизайн тайме установить свойство Active в True у ClientDataSet1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2019, 16:01 |
|
||
|
Firedac master-detail зависшая транзакция
|
|||
|---|---|---|---|
|
#18+
Если в таблице master нет данных, то при открытии detail не выполняется процедура TFDCustomCommand.Fetch юнита FireDAC.Comp.Client, а в ней полю FOperationFinished должно присваиваться событие FetchFinished, которое закрывает транзакцию. В итоге остается открытая транзакция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2019, 20:34 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=63&tid=2039076]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 430ms |

| 0 / 0 |
