Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá... amigos.
Estou trabalhando com as variáveis de erros :
ErrorMode
ScriptError
ScriptErrorDetails
ScriptErrorCount
ScriptErrorList
O problema é que ao identificar um erro executo o próximo script, e preciso saber se esse outro script também deu erro.Mas com o primeiro erro, a variável armazena as informações referente ao primeiro erro.
Utilizei o "SET ScriptErrorCount = 0;" para limpar a variável e saber se deu erro no próximo evento.
Porem o QVS acusa um erro por causa deste comando.
Preciso zerar as variáveis de erro para acompanhar os próximos scripts, alguma dica?
Sub LeTabela(vTabela)
Let vQtdeErro = $(ScriptErrorCount);
TRACE Lendo a tabela $(vTabela);
LOAD * FROM $(vTabela).qvd (qvd);
if '$(ScriptErrorCount)' > '$(vQtdeErro)' then
TRACE ******************* ERRO LENDO A TABELA $(vTabela) ****************************;
ENDIF
ENDSUB
Set vQtdeErro = 0;
Set ErrorMode = 0;
call LeTabela('Data');
//
// com erro
call LeTabela('Datas');
Egnaldo, boa noite.
E se você controlar em uma variável a quantidade de erros ?
Segue um exemplo.....
Se descomentar a linha que le o qvd e comentar a outra vai gerar um erro.....e se quiser pode comentar / descomentar para ver como se comporta....
Acho que o ideal é controlar com outras variáveis mesmo, pois estas variáveis de sistemas só são zeradas no início da próxima execução.
Mas o que você, realmente, precisa fazer?
Bom dia Alessandro,
No seu exemplo eu preciso saber quais foram os arquivos que não foram encontrados para poder sinalizar ao usuário.
Não basta apenas saber que deu erro e sim quais arquivos deram erro.
Deu para entender?
Sub LeTabela(vTabela)
Let vQtdeErro = $(ScriptErrorCount);
TRACE Lendo a tabela $(vTabela);
LOAD * FROM $(vTabela).qvd (qvd);
if '$(ScriptErrorCount)' > '$(vQtdeErro)' then
TRACE ******************* ERRO LENDO A TABELA $(vTabela) ****************************;
ENDIF
ENDSUB
Set vQtdeErro = 0;
Set ErrorMode = 0;
call LeTabela('Data');
//
// com erro
call LeTabela('Datas');
Obrigado Alessandro.
Eu não tinha entendido que a variável "ScriptErrorCount" acumulava a qtd de erros.
Falta de atenção minha.
Chefe nicolett.yuri,
Estou conectando em vários bancos de dados em um único script utilizando um LOOP e conexão OLEDB.
Porém em alguns momentos esta conexão pode estar indisponível e preciso saber qual deu erro e sinalizar ao usuário.
Com o tratamento de erro consegui fazer isso.
Sei que a explicação foi um pouco tarde pois o afurtado me ajudou, mas fica para auxiliar os demais usuários.
Isso ae