Показать сообщение отдельно
Старый 08.08.2008, 11:12   #4  
Bishop is offline
Bishop
Участник
 
89 / 60 (3) ++++
Регистрация: 12.08.2004
Адрес: Москва
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Вот простенький джобец, который позволяет локализовать проблемную таблицу.
По-моему, некорректный джобец. Во-первых, он работает до первой ошибки, во-вторых, имя таблицы с ошибкой как раз не выводится, а в инфологе только куча строк "Table xxx - ОК".

Вчера как раз тоже написал подобный джоб, может кому пригодится:
X++:
// Синхронизация с выводом наименований "неправильных" таблиц
static void DbSynchronize(Args _args)
{
    #AviFiles
    Dictionary              dictionary;
    DictTable               dictTable;
    int                     i;
    SysOperationProgress    progress;
    ;
    dictionary = new Dictionary();
    progress = SysOperationProgress::newGeneral(#AviUpdate, "Синхронизация", dictionary.tableCnt());
    for (i = 1; i <= dictionary.tableCnt(); i++)
    {
        dictTable = new DictTable(dictionary.tableCnt2Id(i));
        if  (dictTable.isSql() &&
                (
                    !dictTable.configurationKeyId()    ||
                    isConfigurationkeyEnabled(dictTable.configurationKeyId())
                )
            )
        {
            try
            {
                progress.setText(dictTable.name());
                progress.setCount(i);
                if (!appl.dbSynchronize(dictTable.id(), false, true, false))
                {
                    warning(strfmt("Проблемы с таблицей %1 (Id = %2)!", dictTable.name(), dictTable.id()));
                }
            }
            catch (Exception::Error)
            {
                warning(strfmt("Проблемы с таблицей %1 (Id = %2)!", dictTable.name(), dictTable.id()));
            }
        }
    }
    info("Синхронизация завершена");
}
По опыту, проблемы при синхронизации возникают в основном в двух случаях:
- некорректные данные в таблице SqlDictionary (чаще всего - их отсутствие),
- нарушение уникального индекса (самая "попса" - табличка InventDim при отключении складской аналитики)
За это сообщение автора поблагодарили: DarLord (0).