Página 1 de 1

Como capturar erros do CDO ou CDONT

Enviado: 03 Jun 2024 17:23
por JoséQuintas
O que achei interessante no CDO é que o provedor reclama de emails inválidos.
E pelo mesmo motivo, pode considerar como spam ficar tentando usar emails que não existem.

Mas não consegui capturar a mensagem de erro.
Na internet, muitas perguntas, mas nenhuma solução.
Só na função de erro do próprio VB, err.number e err.description.

O harbour tem alguma coisa pra pegar erro de win_OleCreateObject() ?

Nota: com ADO dá pra pegar o erro do MySQL pela conexão, mas no CDO não encontrei alternativa.

Como capturar erros do CDO ou CDONTS

Enviado: 03 Jun 2024 18:28
por alxsts
Olá!

Já tentou com os recursos do próprio Harbour?

Begin Sequence With Errorblock() ... Recover Using oError ... End Sequence

Dentro do oError estarão as informações relacionadas ao erro...

Como capturar erros do CDO ou CDONT

Enviado: 04 Jun 2024 07:38
por JoséQuintas
E não é que pra isso ele deu certo.
Pra ADO/mysql, por exemplo, é de outra forma.

Vou usar a informação do erro pra algo mais.

valeu

Como capturar erros do CDO ou CDONT

Enviado: 04 Jun 2024 13:17
por alxsts
Olá!
JoséQuintas escreveu:Pra ADO/mysql, por exemplo, é de outra forma.
Estranho... comigo sempre funcionou usando os recursos que citei...

Como capturar erros do CDO ou CDONT

Enviado: 04 Jun 2024 16:53
por JoséQuintas
alxsts escreveu:Estranho... comigo sempre funcionou usando os recursos que citei...
Pode ser mas.... vém mensagem detalhada ?

Código: Selecionar todos

      BEGIN SEQUENCE WITH __BreakBlock()
         Rs := ::Cn:Execute( cSQL )
         lOk := .T.
      ENDSEQUENCE
      IF ! lOk
         Errorsys_WriteErrorLog( LTrim( Str( ::Cn:Errors( 0 ):Number( ) ) ) + " " + ;
            ::Cn:Errors( 0 ):Description() + hb_Eol() + ;
            "Full SQL:" + hb_Eol() + ;
            cSQL, 3 )
      ENDIF
      IF ! lOk
         IF lError
            Eval( ErrorBlock() )
            QUIT
         ENDIF
      ENDIF
Só cuidado pra não mostrar pro usuário coisas com senha.