Talvez seja até meio básico, mas não sei como poderia fazer isso - criar uma errorsys pra esse tipo de erro.
Já intercepto erro, pego mensagem de erro do ADO, o que falta é passar isso pra errorsys.
Motivo: envio emails de erro, e o erro que vém é o erro de uso de OLE, e não o erro do MySql.
Como exemplo, a rotina pra conectar com MySql:
Código: Selecionar todos
Function MySqlOpen(cnMySql,lAborta)
Local mAbriu := .f., nCont := 0
lAborta := iif(lAborta==NIL,.t.,lAborta)
wSave(MaxRow()-3,0,MaxRow(),MaxCol())
For nCont = 1 To 5
Mensagem("Conectando com servidor, tentativa " + Ltrim(Str(nCont)) + "/5")
Begin Sequence With { |e| Break(e) }
cnMySql:Open()
mAbriu := .t.
End Sequence
If mAbriu
Exit
Endif
Begin Sequence With {|e| Break(e)}
Mensagem("Erro:" + Ltrim(Str(cnMySql:Errors(0):Number())) + " " + cnMySql:Errors(0):Description())
GravaLog("Erro:"+Ltrim(Str(cnMySql:Errors(0):Number()))+" " + cnMySql:Errors(0):Description())
End Sequence
MyInkey(10)
Next
If lAborta .And. .Not. mAbriu
?
? "Erro abrindo base de dados:"
Begin Sequence With { |e| Break(e) }
? Ltrim(Str(cnMySql:Errors(0):Number())) + " " + cnMySql:Errors(0):Description()
End Sequence
?
? "Nao foi possivel conectar com o servidor."
? "Caso seja uma maquina nova, pode faltar instalar o conector para MySql"
? "Caso contrario, pode ser por falhas na internet, ou troca do endereco do servidor"
?
Eval(ErrorBlock())
Cancel
Endif
wRestore()
Return mAbriu


