Manwë Súlimo Postado Julho 30, 2004 Denunciar Share Postado Julho 30, 2004 Pessoal, estou com um problemapreciso testar se uma instrução SQL insert foi executada com sucesso, caso não foi , eu executo outra...eu fiz assim:On Error GoTo trataerrocn.execute "insert into ...."trataerro:cn.execute "insert into" 'aqui outro inserterro=1eu fiz assim mas não funcionou, alias, ele inseria nos dois insert....eu queria que ele executasse o segundo insert, só se o primeiro não fosse possivel adicionar, ou seja, se gerasse um erro...como eu faço isso? já que assim não deu certo??da p/ fazer um teste assim?:if not cn.execute("insert into...") thencodigo de erro...end ifisso funcionaria??e eu queria saber se esses negocio de tratar erro é antes ou depois do codigo, exemplo, seria assim:LinhaErro:codigos de erroOn Error GoTo Linha Erroou é assim:On Error GoTo Linha ErroLinhaErro:codigos de erroou não faz diferença??espero que possam me ajudaraté mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 30, 2004 Denunciar Share Postado Julho 30, 2004 Da primeira maneira que você tentou dá certo, apenas você não deve ter colocado o Exit Sub para impedir que ele passe na rotina de tratamento de erro sem que realmente tenha ocorrido um, exemplo:On Error GoTo trataerro cn.execute "insert into ...." exit sub trataerro: cn.execute "insert into" 'aqui outro insert erro=1Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manwë Súlimo Postado Julho 30, 2004 Autor Denunciar Share Postado Julho 30, 2004 Valeu Graymalkinmano, minhas rotinas de erros nunca deram certo por causa disso então,eu não sabia que precisava por o exit sub antes da linha de erro...até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Julho 30, 2004 Denunciar Share Postado Julho 30, 2004 eu queria saber se esses negocio de tratar erro é antes ou depois do codigoBrother..Sempre fiz depois.... On Error GoTo MeuErro 'meus códigos exit sub MeuErro: 'código de correção ou não faz diferença??Aí eu não sei não cara...PS: estou sem VB aqui, mas faz um teste aí e vê no que dá Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Julho 30, 2004 Denunciar Share Postado Julho 30, 2004 Brother... Sempre fiz depois.... Eu também acho que no final é a forma correta. se colocar um em outro lugar seu código vai ficar assim:On Error GoTo MeuErro' códigosGoto PulaFuncao 'Nossa.....MeuErro:'código de correçãogoto Fim ou Resume NextPulaFuncao:+ códigoFIM: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Julho 30, 2004 Denunciar Share Postado Julho 30, 2004 Eu também acho que no final é a forma correta. se colocar um em outro lugar seu código vai ficar assim:Fica estranhos pakas....hehehe Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Manwë Súlimo
Pessoal, estou com um problema
preciso testar se uma instrução SQL insert foi executada com sucesso, caso não foi , eu executo outra...
eu fiz assim:
On Error GoTo trataerro
cn.execute "insert into ...."
trataerro:
cn.execute "insert into" 'aqui outro insert
erro=1
eu fiz assim mas não funcionou, alias, ele inseria nos dois insert....
eu queria que ele executasse o segundo insert, só se o primeiro não fosse possivel adicionar, ou seja, se gerasse um erro...
como eu faço isso? já que assim não deu certo??
da p/ fazer um teste assim?:
if not cn.execute("insert into...") then
codigo de erro...
end if
isso funcionaria??
e eu queria saber se esses negocio de tratar erro é antes ou depois do codigo, exemplo, seria assim:
LinhaErro:
codigos de erro
On Error GoTo Linha Erro
ou é assim:
On Error GoTo Linha Erro
LinhaErro:
codigos de erro
ou não faz diferença??
espero que possam me ajudar
até mais
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.