![]() |
#1 |
Участник
|
Не срабатывает skipDatabaseLog(true)
установлена MBS Axapta 3.0 CIS SP3 Build #9.2, MS SQL 2000
Перед удалением данных в таблице вызываются методы skipDatabaseLog(true) skipDeleteActions(true) skipDeleteMethod(true) но при этом данные в таблицу SysDatabaseLog почему-то попадают!!! |
|
![]() |
#2 |
Участник
|
В AX2009 была обнаружена подобная ситуация. Массовое удаление записей через CCADOConnection
Цитата:
А в вашем случае что именно пишется в лог? |
|
![]() |
#3 |
Участник
|
Пишется информация по всем удаленным записям.
Может быть проблема от того, что стоит клиентская часть более новая, чем приложение? (Клиент - SP6, приложение SP3) |
|
![]() |
#4 |
Участник
|
По-моему всегда так и было.
skipDataBaseLog() влиял только на удаление и обновление выполняемое конструкциями X++: delete_from
update_recordset X++: delete() update() |
|
![]() |
#5 |
Участник
|
Цитата:
Разве? Конечно надо проверить, но skip действовал всегда, насколько я помню. |
|
![]() |
#6 |
Модератор
|
Вопрос, что включено в логирование бд. Была же похожая ситуация на форуме пару недель назад.
С Уважением, Георгий |
|
![]() |
#7 |
Участник
|
У меня не получалось добиться пропуска логирования для
delete() update() Сам удивлялся. |
|
![]() |
#8 |
Участник
|
Подниму-ка я эту тему.
Axapta 3.0 SP4, MS SQL Server 2000
SysDataBaseLog.insert() срабатывает при выполнении следующего кода: X++: static void Job6(Args _ars) { VendTable vendTable; ; ttsbegin; vendTable.skipDatabaseLog(true); select forupdate firstonly vendTable where vendTable.AccountNum == "000002_313"; vendTable.Name = 'Test9'; vendTable.doUpdate(); ttscommit; } Есть в тройке какая-то возможность заставить изменения не писаться в SysDataBaseLog? |
|
![]() |
#9 |
Участник
|
использовать update_recordset
а также еще вызвать skipDataMethods(true) |
|
![]() |
#10 |
Участник
|
skipDataMethods не помогает (я все скипы пробовал
![]() ![]() Я правильно понимаю, что skipDatabaseLog должен работать только для update_recordset, это функционал согласно дизайна Аксапты? |
|
![]() |
#11 |
Участник
|
Проверил в AX 2009
Убедился, что в AX 2009 такой проблемы нет. skipDataBaseLog(true) вполне успешно отключает логирование.
В тройке это как-то лечится, никто не знает? |
|
![]() |
#12 |
Участник
|
Цитата:
Можно делать update_recordset индивидуально для каждой записи - ничего в этом такого нет. обычный update() отправляет схожий запрос. Ну или если у вас есть какой нить критерий по которому можно больше записей отобрать для обновления то его же можно запихнуть в условие update_recordset |
|
![]() |
#13 |
Участник
|
а если vendTable.skipDatabaseLog(true) вызвать после select, а не до? Вдруг select сбрасывет значения флагов skip*
|
|
![]() |
#14 |
Участник
|
|
|
![]() |
#15 |
Участник
|
Насколько я помню, у нас в Ax3.0 была та же проблема. В принципе, она не особо мешала кроме случаев массовой загрузки. При массовой загрузки мы:
|
|
|
За это сообщение автора поблагодарили: Hyper (1). |
Теги |
database log |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|