Rotina de ErrorLog
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Rotina de ErrorLog
Não lembro aonde vi algo sobre xharbour....
Já que está com problemas, o negócio seria aproveitar e usar uma versão do Harbour atual.
Afinal, que versão está usando?
Já que está com problemas, o negócio seria aproveitar e usar uma versão do Harbour atual.
Afinal, que versão está usando?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Rotina de ErrorLog
Uso a 3.2. Tentei mudar para a 3.4, mas não funcionou.
De onde posso baixar a versão mais atual?
Sim, fui eu que falei errado em xHarbour.
De onde posso baixar a versão mais atual?
Sim, fui eu que falei errado em xHarbour.
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Rotina de ErrorLog
Podemos definir o mundo Harbour como sendo 3 versões:
- Harbour 3.2
- Harbour 3.4
- xHarbour
Usa mingw?
Se usar mingw mais fácil, só baixar e usar.
Correção: depende se usa algum extra, e é possivel que o MySql seja um extra.
Nesta página: https://sourceforge.net/projects/harbou ... s/nightly/
Detalhe:
Depende do quão antiga é sua versão, ou se misturou alguma coisa. Faz um bom tempo que o Harbour 3.2 funciona perfeito.
Não uso nenhum extra, então não vou saber dizer como criar os extras.
Quando usa extras, não sei se o MySQL é um deles, é necessário:
- Baixar o componente adicional, que contém a DLL e arquivos #include pra C (.H)
- Gerar uma LIB pra acesso a essa DLL e/ou o componente extra direcionado pra exatamente essa DLL
É por isso que trocar de Harbour pode ser complicado: tem que lembrar o que adicionou de extra, e adicionar novamente, compatível com o novo.
Se obteve de alguém... tente obter desse alguém de novo, caso não consiga resolver.
E se quebrar a cabeça pra resolver, já anote o que fez, pra da próxima vez ser mais fácil.
Como eu não uso extras, apenas baixo os fontes do Harbour e gero. (Harbour 3.4).
Pra isso so precisa o compilador C e nada mais.
- Harbour 3.2
- Harbour 3.4
- xHarbour
Usa mingw?
Se usar mingw mais fácil, só baixar e usar.
Correção: depende se usa algum extra, e é possivel que o MySql seja um extra.
Nesta página: https://sourceforge.net/projects/harbou ... s/nightly/
Detalhe:
Depende do quão antiga é sua versão, ou se misturou alguma coisa. Faz um bom tempo que o Harbour 3.2 funciona perfeito.
Não uso nenhum extra, então não vou saber dizer como criar os extras.
Quando usa extras, não sei se o MySQL é um deles, é necessário:
- Baixar o componente adicional, que contém a DLL e arquivos #include pra C (.H)
- Gerar uma LIB pra acesso a essa DLL e/ou o componente extra direcionado pra exatamente essa DLL
É por isso que trocar de Harbour pode ser complicado: tem que lembrar o que adicionou de extra, e adicionar novamente, compatível com o novo.
Se obteve de alguém... tente obter desse alguém de novo, caso não consiga resolver.
E se quebrar a cabeça pra resolver, já anote o que fez, pra da próxima vez ser mais fácil.
Como eu não uso extras, apenas baixo os fontes do Harbour e gero. (Harbour 3.4).
Pra isso so precisa o compilador C e nada mais.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Rotina de ErrorLog
Não uso Minigui.
No link que vc passou tem 3 arquivos, correto? Um txt, um .exe, que parece que é o da minigui, e um .zip, que parece que é o harbour 3.2, correto?
Baixei este último, salvei em uma pasta diferente da que eu estava usando, e compilei com ele, sem a minha errorsys, e continua o mesmo problema: fecha direto, sem entrar na errorsys do Harbour.
No link que vc passou tem 3 arquivos, correto? Um txt, um .exe, que parece que é o da minigui, e um .zip, que parece que é o harbour 3.2, correto?
Baixei este último, salvei em uma pasta diferente da que eu estava usando, e compilei com ele, sem a minha errorsys, e continua o mesmo problema: fecha direto, sem entrar na errorsys do Harbour.
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Rotina de ErrorLog
No Harbour 3.2 é obrigatório configurar:
SET HB_INSTALL_PREFIX=pasta do harbour
Fez isso?
Lembrando que em SET PATH é pra deixar o Harbour que instalou agora, e retirar os outros.
Depois disso, só restam seus fontes mesmo.... rs
SET HB_INSTALL_PREFIX=pasta do harbour
Fez isso?
Lembrando que em SET PATH é pra deixar o Harbour que instalou agora, e retirar os outros.
Depois disso, só restam seus fontes mesmo.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Rotina de ErrorLog
Não sei se dá certo, colocar todo seu aplicativo dentro de uma errorsys, pra descobrir aonde sai.
A intenção seria gravar em que ponto saiu.
Código: Selecionar todos
BEGIN SEQUENCE
SuaMain()
RECOVER
WriteErrorLog() // A CallStack
END SEQUENCE
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Rotina de ErrorLog
Não fiz não. Desculpe a ignorância, mas onde configura esses SETs?
Tentei colocar a main() dentro de um begin sequence, mas não compila.
De qualquer forma, acho que não funcionaria. Afinal, como vc mesmo disse, a begin sequence desvia da errorsys, correto? Então, ele vai apontar onde está o erro que estou provocando. Mas a questão não é essa. O problema é que não está entrando na errorsys e fechando direto. Quando desvio com o begin sequence, dá tudo certo.
Tentei colocar a main() dentro de um begin sequence, mas não compila.
De qualquer forma, acho que não funcionaria. Afinal, como vc mesmo disse, a begin sequence desvia da errorsys, correto? Então, ele vai apontar onde está o erro que estou provocando. Mas a questão não é essa. O problema é que não está entrando na errorsys e fechando direto. Quando desvio com o begin sequence, dá tudo certo.
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Rotina de ErrorLog
Não é simplesmente colocar a Main em begin sequence.
Seria algo como:
mingw não é minigui. mingw é o compilador C padrão.
No windows:
Seria algo como:
Código: Selecionar todos
FUNCTION Main()
BEGIN SEQUENCE
SuaAntigaMain()
BREAK
RECOVER
MostrarCallStack()
END SEQUENCE
MostrarCallStack()
...
No windows:
Código: Selecionar todos
SET PATH=????
SET HB_INSTALL_PREFIX=?????
Por acaso está retornando direito a errorsys anterior no final?Quando desvio com o begin sequence, dá tudo certo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Rotina de ErrorLog
Realmente foi burrice minha.
Mas agora fiz assim:
Assim imagino que era pra funcionar, mas estranhamente, está fechando direto.
Desculpe, mas esta parte eu ainda não entendi:
Tá certo?
Mas agora fiz assim:
Código: Selecionar todos
#require "rddsql"
#require "sddodbc"
#include "dbinfo.ch"
// REQUEST SQLMIX, SDDODBC, DBFNTX
#include "inkey.ch"
#include "hbgtinfo.ch"
// #include "dbinfo.ch"
#define RDDI_CONNECT 1001
#define RDDI_DISCONNECT 1002
#define RDDI_EXECUTE 1003
REQUEST SQLMIX, SDDODBC, DBFNTX
ANNOUNCE RDDSYS
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
PROCEDURE Main
bError := ErrorBlock( {|e| Break(e) } )
begin sequence
agenda()
recover using e
cMessage := ErrorMessage(e)
logerro()
mandmail1("error.log","Erro na função agenda contornado com o recover do begin sequence")
endsequence
ErrorBlock( bError )
return
function agenda
...
Desculpe, mas esta parte eu ainda não entendi:
Sempre retorno assim, veja se está certo:No windows:
SET PATH=????
SET HB_INSTALL_PREFIX=?????
Código: Selecionar todos
endsequence
ErrorBlock( bError )
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Rotina de ErrorLog
O Harbour 3.2 tem um bug, ele usa o SET HB_INSTALL_PREFIX também na compilação, e deveria ser somente na geração.
De nada adianta configurar o PATH, se não ajustar também SET_HB_INSTALL_PREFIX, variável de ambiente do Windows.
O que acontece com sua função quando dá erro no fonte dela, ou não consegue enviar email?
Sai do sistema?
Olhou a hb_out.log?
Isso é log de erros do HARBOUR, não da errorsys.
De nada adianta configurar o PATH, se não ajustar também SET_HB_INSTALL_PREFIX, variável de ambiente do Windows.
O que acontece com sua função quando dá erro no fonte dela, ou não consegue enviar email?
Sai do sistema?
Olhou a hb_out.log?
Isso é log de erros do HARBOUR, não da errorsys.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Rotina de ErrorLog
O que eu não entendi foi como fazer isso na prática? Seria colocar no .hbp? No .bat?
O programa fecha direto, não dá qualquer erro. Não cria o log de erro, não tem arquivo hb_out.log.
O programa fecha direto, não dá qualquer erro. Não cria o log de erro, não tem arquivo hb_out.log.
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Rotina de ErrorLog
O que eu não entendi foi como fazer isso na prática? Seria colocar no .hbp? No .bat?
Se é no Windows, não pode ser no HBP. Ou no BAT ou no Windows.não ajustar também SET_HB_INSTALL_PREFIX, variável de ambiente do Windows.
Acabei de passar por um problema parecido, mas pelo menos aparecia na tela.
É essa merd. de mania dessas bost. de GUIs inventarem errorsys, ou modificarem até o comportamento padrão do Harbour.
Foi com HWGUI.
Resolvi de forma radical:
Já que essas bost. modificam a apresentação em tela do Harbour, removi qualquer uso de tela da errorsys.
Agora é somente o bloco de notas e nada mais.
Código: Selecionar todos
//DO WHILE ( nChoice == 0 )
// IF ( Empty(e:osCode) )
// nChoice := Alert( cMessage, aOptions )
// ELSE
// nChoice := Alert( cMessage + ";(DOS Error " + Ltrim( Str( e:OsCode ) ) + ")", aOptions )
// ENDIF
// IF ( nChoice == NIL )
// EXIT
// ENDIF
//ENDDO
//
//IF ! Empty( nChoice )
// // do as instructed
// IF ( aOptions[ nChoice ] == "Break" )
// Break(e)
// ELSEIF ( aOptions[ nChoice ] == "Retry" )
// RETURN (.T.)
// ELSEIF ( aOptions[ nChoice ] == "Default" )
// RETURN (.F.)
// ENDIF
//ENDIF
Called from (b)ERRORSYS(17)
Called from TESTHWGUI(37)
Called from (b)MAIN(8)
Error BASE/1003 Variable does not exist: CODIGO
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Rotina de ErrorLog
Eu realmente não sei mais o que fazer para resolver isso. Acho que vou ter que desistir.
Por favor, só me responda mais uma coisa, que eu já tinha perguntado acima: como vc faz a atualização do sistema no computador dos teus usuários? Como envia o arquivo de atualização? Manda compactado? Manda o próprio EXE?
Por favor, só me responda mais uma coisa, que eu já tinha perguntado acima: como vc faz a atualização do sistema no computador dos teus usuários? Como envia o arquivo de atualização? Manda compactado? Manda o próprio EXE?
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Rotina de ErrorLog
Já respondi antes.
Se retirou as mexidas da errorsys, não usa nenhuma lib gráfica....
Se tem certeza que ajustou TODOS os fontes envolvidos, de todas as pastas (pode ser que estão separados e só olhou uma pasta)...
De diferente só resta esse uso de MySQL, mas muita gente usa assim, então tente se informar porque senão a mudança vai ser radical nos fontes pra mudar isso.
Quanto à errorsys....Minha atualizacão é simples: baixo o EXE com um nome temporário, testo tamanho/crc32, se tudo ok, renomeio pra EXE pra entrar no lugar do outro.
É assim desde os tempos do Clipper.
Se retirou as mexidas da errorsys, não usa nenhuma lib gráfica....
Se tem certeza que ajustou TODOS os fontes envolvidos, de todas as pastas (pode ser que estão separados e só olhou uma pasta)...
De diferente só resta esse uso de MySQL, mas muita gente usa assim, então tente se informar porque senão a mudança vai ser radical nos fontes pra mudar isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Rotina de ErrorLog
O que ainda não entendi é como vc baixa? Por ftp? Se não, de onde baixa? Como faz para baixar?
E como vc consegue renomear o EXE com o programa em execução?
Quanto à errorsys, já testei com a errorsys do Harbour. Não uso nenhuma lib gráfica. Não sei mais o que fazer. O que mais me intriga é esse erro método não exportado: SEVERITY, que, até onde sei, é problema do Harbour, não é da minha aplicação.
E como vc consegue renomear o EXE com o programa em execução?
Quanto à errorsys, já testei com a errorsys do Harbour. Não uso nenhuma lib gráfica. Não sei mais o que fazer. O que mais me intriga é esse erro método não exportado: SEVERITY, que, até onde sei, é problema do Harbour, não é da minha aplicação.
Inacio de Carvalho Neto
