|
|
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
Последнее время пользователи программы (Клиника) стали жаловаться на исчезновение некоторых записей из базы. Регистратор вносит прием пациента, сохраняет, распечатывает. Через несколько дней возвращается к карте пациента, а данной записи там нет. Так же периодически наблюдается следующая ситуация (думаю, что оттуда же ветер дует): регистратор вносит запись о приеме пациента, распечатывает ее, дает пациенту. Пациент идет к врачу, врач открывает у себя на компьютере этого пациента, а записи о приеме там нет. Хотя она есть у регистратора. Где копать? Проблемы с транзакциями AnyDAC или на сервере линукса? Раньше там стоял FreeBSD, не жаловались. Админ снес фряху, поставил линукс, появилась проблема. Хотя не факт, что после этого, значит из-за этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 10:47 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
у Anydac/Firedac нет транзакций, транзакции есть у используемого Вами SQL сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 11:02 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
энди у Anydac/Firedac нет транзакций, транзакции есть у используемого Вами SQL сервера. Забыл написать. Это MySQL сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 11:10 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
svnvlad, Похоже на незакрытую транзакцию. По закрытию программы (например) происходит откат. проверь хранимки на безопасный код (что-то типа такого) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 11:10 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
Gerasimenko svnvlad, Похоже на незакрытую транзакцию. По закрытию программы (например) происходит откат. проверь хранимки на безопасный код (что-то типа такого) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Хранимки в коде не используются, транзакции тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 11:25 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
svnvlad Gerasimenko svnvlad, Похоже на незакрытую транзакцию. По закрытию программы (например) происходит откат. проверь хранимки на безопасный код (что-то типа такого) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Хранимки в коде не используются, транзакции тоже. Тогда похоже у вас стоит конструкция Try...except / finally без обработки самой ошибки, которая глушит ошибку при попытке сохранения. (Чудес не бывает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 11:29 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
svnvlad ... Где копать? Проблемы с транзакциями AnyDAC или на сервере линукса? Раньше там стоял FreeBSD, не жаловались. Админ снес фряху, поставил линукс, появилась проблема. Хотя не факт, что после этого, значит из-за этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 11:32 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
да, ребята правы, такое ощущение что у вас не закрываются транзакции и соответственно сделанные ими изменения откатываются либо по закрытию программы, либо по таймауту транзакции. То что у вас в программе не используются транзакции в явном виде, значит только то что они используются в неявном :) Даже без использования хранимок вы преспокойно можете управлять транзакциями через Delphi код. Обертывайте Ваш код в Try Except Finally c явным стартом, коммитом или роллбэком транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 11:35 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
Gerasimenko Тогда похоже у вас стоит конструкция Try...except / finally без обработки самой ошибки, которая глушит ошибку при попытке сохранения. (Чудес не бывает) Однако ему хватает этого, чтобы распечатать отчет по данной записи (на этом же компьютере). Данные для отчета ведь берутся после обращения к базе. На других она не появляется. Все дело в транзакциях? Может на сервере есть какие-то настройки, чтобы лучше коммитило. На FreeBSD записи не пропадали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:29 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
svnvlad Gerasimenko Тогда похоже у вас стоит конструкция Try...except / finally без обработки самой ошибки, которая глушит ошибку при попытке сохранения. (Чудес не бывает) Однако ему хватает этого, чтобы распечатать отчет по данной записи (на этом же компьютере). Данные для отчета ведь берутся после обращения к базе. На других она не появляется. Все дело в транзакциях? Может на сервере есть какие-то настройки, чтобы лучше коммитило. На FreeBSD записи не пропадали. Заполненность бланка не связана в этом случае с сохранением в БД, если бланк печатается из самой формы, а не из _RecordSet. Заполнил, нажал кнопку сохранить, нажал кнопку распечатать и вышел из формы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:37 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
Ну вот смотрите, идет вставка базы в контексте неявно вызванной транзакции, она не закрывается и клиент тут же читает эти данные в БД. В определенных режимах работы транзакции данные прекрасно вернутся на клиента и будут использованы для построения отчета. Затем клиент прибивает приложение (сам ли, потеряли связь и т.д), транзакция подвисает, но данные по прежнему доступны, у транзакции есть таймаут, по таймауту она откатывается и убирает данные которые небыли commit. При правильном использовании транзакций на клиенте никаких потерь быть не может, у вас похоже никакого явного управления транзакциями не происходит, соответственно используются некие дефолтные настройки как клиента так и сервера. А вот тут уже момент смены сервера вполне может привести к изменению дефолтных настроек у клиента и понеслись проблемы. Таким образом на клиенте требуется явно указывать режим изоляции транзакций, плюс явно запускать и коммитить транзакции при вставке данных в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:43 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
Если у вас в коде не используются транзакции, значит вы надеялись на то, что работаете в режиме autocommit. Выполните две команды (вторую обязательно из контекста своего соединения) Код: sql 1. 2. Если вторая OFF, то вам нужно после создания своего соединения вызвать Код: pascal 1. этого будет достаточно. Или, если у вас и первый запрос выдает false, то вам нужно найти в серверном конфиге строчку Код: powershell 1. и закомментировать ее или установить Код: powershell 1. Вариант с mysql_autocommit() предпочтительнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:44 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
Gerasimenko Заполненность бланка не связана в этом случае с сохранением в БД, если бланк печатается из самой формы, а не из _RecordSet. Заполнил, нажал кнопку сохранить, нажал кнопку распечатать и вышел из формы... Форма сохраняет в базу ADQuery.Save; Затем форма закрывается f.Free; После этого нажимается кнопка, открывается форма отчета FastReport, которая читает данные из базы и распечатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:46 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
svnvlad которая читает данные из базы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:48 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
энди При правильном использовании транзакций на клиенте никаких потерь быть не может, у вас похоже никакого явного управления транзакциями не происходит, соответственно используются некие дефолтные настройки как клиента так и сервера. Да, именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:48 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Если у вас в коде не используются транзакции, значит вы надеялись на то, что работаете в режиме autocommit. Выполните две команды (вторую обязательно из контекста своего соединения) Код: sql 1. 2. Если вторая OFF, то вам нужно после создания своего соединения вызвать Код: pascal 1. этого будет достаточно. Или, если у вас и первый запрос выдает false, то вам нужно найти в серверном конфиге строчку Код: powershell 1. и закомментировать ее или установить Код: powershell 1. Вариант с mysql_autocommit() предпочтительнее Из менеджера SQL вызвал обе команды, обе выдали ON. Нужно именно из программы вызвать, а не из менеджера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:53 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
svnvlad Из менеджера SQL вызвал обе команды, _Vasilisk_ Выполните две команды ( вторую обязательно из контекста своего соединения ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 12:54 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
svnvlad Последнее время пользователи программы (Клиника) стали жаловаться на исчезновение некоторых записей из базы А название-то оказалось пророческим. Ну а по сути всё уже сказали. Проблема явно связана с транзакциями, и учитывая архитектурный стиль приложения - скорее всего, с какой-нибудь настройкой автокоммита, которая раньше стояла в конфиге и спасала падающие штаны, а теперь оказалась в дефолтовом значении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 13:19 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ svnvlad Из менеджера SQL вызвал обе команды, _Vasilisk_ Выполните две команды ( вторую обязательно из контекста своего соединения ) Тоже ON. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 13:26 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 13:30 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
svnvlad Тоже ON. svnvlad Форма сохраняет в базу ADQuery.Save; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2021, 13:39 |
|
||
|
Пропадают данные из базы. В чем причина - AnyDAC или неправильные настройки в линуксе?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ svnvlad Тоже ON. svnvlad Форма сохраняет в базу ADQuery.Save; Как раз в этот момент и встраивал код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2021, 13:46 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40036769&tid=2037696]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 504ms |

| 0 / 0 |
