Utilizar a opção de debug contida no IBExpert é de grande ajuda para identificar determinados erros que ocorrem ao executar algum procedimento no banco de dados quando a mensagem do erro não está muito clara.
O exemplo adotado no FAQ é de uma sincronização de TABELAS DE PREÇO, no qual está faltando um PRODUTO no banco de destino e nós iremos identificar qual produto é este através do debug. Lembrando que para corrigir essa situação normalmente não precisa debugar, basta verificar se a tabela de produtos do banco de origem está diferente da de destino e sincronizar ela, mas para ter um exemplo simples para o FAQ, foi adotada essa simulação.
Lembrando que para executar as sincronização direto pelas procedures elas devem ser executadas no banco que RECEBE as informações, ou seja o banco de destino.
Primeiro abra a procedure ou o script que deseja executar (para executar script utilize a opção F12) e mande executar:
Será retornada o erro que o script apresenta no resumo das informações abaixo, normalmente indicando a procedure, ou tabela ou campo que apresenta erro:
Até o momento nos executamos a procedure/script e vimos o retorno do erro, o processo de debugar começa agora. Para acessar opção de debug click no botão a seguir:
Com isso deve ser preenchido os parâmetros exigidos pela procedure/script e de acordo com a necessidade você pode mandar executar (F9) que vai executar até apresentar o erro, ou executar passo a passo (F8), que vai ser executado linha por linha de código.
Após preencher os parâmetros e mandar executar, deve ser retornada a mensagem de erro na aba Menssages, porem agora temos a opção de clicar na aba Parameters and Variables para podermos identificar qual é o problema da mensagem de erro.
Com base na mensagem de erro retornada e na parte do código que acontece o erro, você está apto a deduzir qual pode ser o problema na execução da procedure/script. No caso deste exemplo é o fato do código não conseguir encontrar o produto de código ID 547 na hora de inserir ele na tabela ITENS_TABELAS_PRECOS, o que significa que ele não está na tabela de PRODUTOS.
Neste caso para corrigir, basta executar a procedure de sincronizar produtos.