15.06.2010, 07:11 | #1 |
Участник
|
Не срабатывает skipDatabaseLog(true)
установлена MBS Axapta 3.0 CIS SP3 Build #9.2, MS SQL 2000
Перед удалением данных в таблице вызываются методы skipDatabaseLog(true) skipDeleteActions(true) skipDeleteMethod(true) но при этом данные в таблицу SysDatabaseLog почему-то попадают!!! |
|
15.06.2010, 08:11 | #2 |
Участник
|
В AX2009 была обнаружена подобная ситуация. Массовое удаление записей через CCADOConnection
Цитата:
А в вашем случае что именно пишется в лог? |
|
15.06.2010, 08:59 | #3 |
Участник
|
Пишется информация по всем удаленным записям.
Может быть проблема от того, что стоит клиентская часть более новая, чем приложение? (Клиент - SP6, приложение SP3) |
|
15.06.2010, 14:16 | #4 |
Участник
|
По-моему всегда так и было.
skipDataBaseLog() влиял только на удаление и обновление выполняемое конструкциями X++: delete_from
update_recordset X++: delete() update() |
|
15.06.2010, 19:10 | #5 |
Участник
|
Цитата:
Разве? Конечно надо проверить, но skip действовал всегда, насколько я помню. |
|
15.06.2010, 19:22 | #6 |
Модератор
|
Вопрос, что включено в логирование бд. Была же похожая ситуация на форуме пару недель назад.
С Уважением, Георгий |
|
15.06.2010, 20:01 | #7 |
Участник
|
У меня не получалось добиться пропуска логирования для
delete() update() Сам удивлялся. |
|
08.04.2011, 19:56 | #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? |
|
08.04.2011, 20:06 | #9 |
Участник
|
использовать update_recordset
а также еще вызвать skipDataMethods(true) |
|
08.04.2011, 20:15 | #10 |
Участник
|
skipDataMethods не помогает (я все скипы пробовал ), а делать update_recordset индивидуально для каждой из сотен тысяч записей - идея интересная.
Я правильно понимаю, что skipDatabaseLog должен работать только для update_recordset, это функционал согласно дизайна Аксапты? |
|
08.04.2011, 20:30 | #11 |
Участник
|
Проверил в AX 2009
Убедился, что в AX 2009 такой проблемы нет. skipDataBaseLog(true) вполне успешно отключает логирование.
В тройке это как-то лечится, никто не знает? |
|
08.04.2011, 20:36 | #12 |
Участник
|
Цитата:
Можно делать update_recordset индивидуально для каждой записи - ничего в этом такого нет. обычный update() отправляет схожий запрос. Ну или если у вас есть какой нить критерий по которому можно больше записей отобрать для обновления то его же можно запихнуть в условие update_recordset |
|
08.04.2011, 21:06 | #13 |
Участник
|
а если vendTable.skipDatabaseLog(true) вызвать после select, а не до? Вдруг select сбрасывет значения флагов skip*
|
|
09.04.2011, 00:29 | #14 |
Участник
|
|
|
09.04.2011, 13:22 | #15 |
Участник
|
Насколько я помню, у нас в Ax3.0 была та же проблема. В принципе, она не особо мешала кроме случаев массовой загрузки. При массовой загрузки мы:
|
|
|
За это сообщение автора поблагодарили: Hyper (1). |
Теги |
database log |
|
|