|
SQLCOMMIT()
|
|||
---|---|---|---|
#18+
Народ, Есть ситуация которая не поддается пониманию. Уже в второй раз за 2 года случается ситуация, кода в процессе работы, при закрытии приложения, все "отработанные" вроде нормально операции вставки записей в таблицы MSSQL 2000 записывались и в последствии при повторном запуске приложения они исчезали. С уверенностью могу сказать что до выхода из приложения, при тестовых выборках "сохраненных" данных - они были, стоило отключиться из сессии как на сервере эти данные каким-то мистическим образом исчезли. Запись происходит в обвернутую конструкцию xResult = SQLEXEC(handle,"BEGIN TRANSACTION") scan while xResult> 0 xResult = SQLEXEC(handle, [INSERT... VALUES ...] ENDSCAN IF xResult > 0 xResult = SQLEXEC(handle,"COMMIT TRASACTION") IF xResult > 0 xResult = SQCOMMIT(handle) ENDIF ELSE xResult = SQLEXEC(gnConnHandle, 'IF @@TRANCOUNT>0 ROLLBACK TRANSACTION') ENDIF "END TRANSACTION" не использовал ..... Из-За чего может происходить потеря данных уже как-бы сохраненных данных? (они были видны при проверке записи документа.) Грешу на Simple Mode в настройках базы .. выставил назад Full Mode и сделал полный бэкап базы. Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 17:08 |
|
SQLCOMMIT()
|
|||
---|---|---|---|
#18+
За "TRANSACTIONs" в Вашем случае отвечает не MS SQL Server а MSDTC. Обычно он работает хорошо, но бывают и проблемы - зависит от среды и настроек. Я бы рекомендовал Ваш код оформить в виде хранимой процедуры, чтобы избежать дополнительное звено в виде MSDTC... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 11:05 |
|
|
start [/forum/topic.php?fid=41&msg=38978759&tid=1582349]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 285ms |
total: | 437ms |
0 / 0 |