|
![]() |
#1 |
Участник
|
В общем ковыряние в SQLDictionary относительно DAX 2009 нужно отнести к разряду вредных советов. Синхронизировать AOT и SQLDictionary можно, только если вы уверены, что в таблицах не добавилось\удалилось никаких полей, а только если изменились их Id-шники (например при переносе слоя между приложениями или)
Синхронизация работает теперь следующим образом: 1. Сравнивается AOT и описание таблицы в SQLDictionary(!!!) 2. Генерится и выполняется скрипт в котором - Добавляются\удаляются поля по найденным расхождениям между AOT и SQLDictionary - Удаляются и вновь создаются строки в SQLDictionary по изменяемым таблицам |
|
![]() |
#2 |
Banned
|
Jonny, вы спасли мне день.
Мой вариант для всех таблиц: X++: static void Job14(Args _args) { SqldataDictionary dict = new SqldataDictionary(); Dictionary dictionary = new Dictionary(); TableId tableId; SysOperationProgress progress; ; progress = new SysOperationProgress(); progress.setTotal(dictionary.tableCnt()); tableId = dictionary.tableNext(0); while (tableId) { progress.setText(dictionary.tableName(tableId)); dict.tableSynchronize(tableId, true, true); tableId = dictionary.tableNext(tableId); progress.incCount(); } } |
|
|
За это сообщение автора поблагодарили: imir (2). |
Теги |
синхронизация |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|