static void forceDbSynchronize(Args 
_args)
{
    
Dictionary              dict;
    
int                     idx, 
lastIdx, totalTables;
    
TableId                 tableId;
    
Application             application;
    
SysOperationProgress    progress;
    
StackBase               errorStack;
    
ErrorTxt                errorTxt;
    
;
    
application = new Application();
    
dict = new Dictionary();
    
totalTables = dict.tableCnt();
    
progress = new 
SysOperationProgress();
    
progress.setTotal(totalTables);
    
progress.setCaption("@SYS90206");
    
errorStack = new 
StackBase(Types::String);
    
lastIdx = 0;
    
try
    
{
        for (idx = lastIdx+1; idx <= 
totalTables; idx++)
        {
            tableId = 
dict.tableCnt2Id(idx);
            
progress.setText(dict.tableName(tableId));
            lastIdx = 
idx;
            
application.dbSynchronize(tableId, false, true, false);
            
progress.incCount();
        }
    
}
    
catch 
(Exception::Error)
    
{
        errorTxt = 
strFmt("Error 
in table '%1' (%2)", tableId, 
dict.tableName(tableId));
        
errorStack.push(errorTxt);
        retry;
    
}
    
setPrefix("@SYS86407");
    
errorTxt = errorStack.pop();
    
while (errorTxt)
    
{
        
error(errorTxt);
        errorTxt = 
errorStack.pop();
    
}
 
No comments:
Post a Comment