Mostrar versão na mensagem de erro

Aqui é o lugar para bater papo e trocar idéias sobre os mais variados assuntos

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar versão na mensagem de erro

Mensagem por JoséQuintas »

Acabou de acontecer no cliente....

Corrigi um problema e o cliente mostrou o erro ainda acontecendo....
Error on 06/08/19 08:56:18
EXE Name; Y:\JPA3.EXE
JPA: 2019.08.05.1513
...
O restante nem interessa...
Nessa parte mostra que estava em uso a versão 2019.08.05.1513
Ou seja... a de ontem.... Não foi atualizado.

Esse número de versão, eu atualizo automático, a cada compilação.
O aplicativo faz uso disso e mostra na mensagem de erro.
Se não fosse o número de versão...

E nem preciso inventar número, data/hora de compilação identifica e pronto.
Meus aplicativos só vão em frente, não voltam.

Mesmo assim.... pela data/hora, consigo localizar no controle do GIT qual é o ponto exato da versão...

Comecei com isso antes do Harbour mudar para o GitHub, e no GitHub o Harbour segue esse mesmo esquema pra versões.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar versão na mensagem de erro

Mensagem por JoséQuintas »

O HBMK2 tem recurso pra isso, mas eu criei o meu próprio.
Não é nada demais....

Código: Selecionar todos

   cTxt := "#define JOSEQUINTAS_VERSAO    " + ["]  + Transform( cDateTime, "@R 9999.99.99.9999" ) + ["] + hb_Eol()
   cTxt += "#define JOSEQUINTAS_VERSAO_RC  " + Transform( cDateTime, "@R 9999,99,99,9999" ) + hb_Eol()
   hb_MemoWrit( cFileName + ".ch", cTxt )
   IF File( "build.ch" ) // BHP ou projeto extra
      hb_MemoWrit( "build.ch", cTxt )
   ENDIF
um arquivo build.ch contendo as definições.
Um pré-hbmk2 grava ele com data/hora.
O programa apenas tem o #include "build.ch" e faz uso das variáveis.
Um é pra ficar embutido no EXE com informação para o Windows, e o outro é pra ser usado dentro do fonte.

Nesse pré-programa, aproveito pra limpar a pasta temporária ao trocar de projeto.
Mando tudo que é temporário pra c:\temp, e não na pasta escondida .HBMK, que acaba enchendo de lixo em tudo que é pasta.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar versão na mensagem de erro

Mensagem por JoséQuintas »

Código: Selecionar todos

<BuildNum>27931</BuildNum>
<LastPath>d:\cdrom\fontes\bhp\bhp\</LastPath>
<BuildDate>20190806</BuildDate>
<BuildTime>20:01:06</BuildTime>
Vixe... faz tempo não olhava...

este salvo de curiosidade.
quase 30.000 compilações já passaram por ele
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar versão na mensagem de erro

Mensagem por JoséQuintas »

hazael escreveu:imagino que tenha backup automático o tempo todo pois com tanta compilação pode ter surpresas com HD, especialmente se for SSD...
Já ouvi dizer sobre terem problema com SSD e perderem tudo.
Por enquanto não tive problema com nenhum SSD, talvez o nobreak impeça problemas.

Pra não dizer que nunca tive problema com HD....
Meu servidor... uma vez não vi que o cooler tinha parado... o HD ferveu e se foi.
Também está com SSD até hoje, depois do ocorrido.
Acho que foi a única ocorrência nos últimos 10 anos ou mais.

O que estraga HD mesmo, são programas do tipo Emule, sem cache ativado.
Isso sim, é chamar desgraça, é gravação ininterrupta.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar versão na mensagem de erro

Mensagem por JoséQuintas »

hazael escreveu:Achei isso muito prático, inteligente e gostaria de aprender.
Na prática você sabe, apenas não pensou em automático.

Como atualiza normalmente?
Entra na internet, faz download, confere, faz backup, copia EXE, altera estrutura, etc. etc.

É cada uma dessas etapas, através de programa, tomando os mesmos cuidados ou reforçando os cuidados até, tipo conferir o que baixou da internet pra ver se caiu conexão e ficou pela metade.

Baixar da internet: hbtip ou libcurl ou msxml

Conferir: salvar um crc32, tamanho, etc. pra conferir quando baixar

trocar EXE: neste tenho um intermediário que executa o exe mais novo, basta que seja gravado na pasta e pronto - salvo com outro nome e só renomeio quando tudo ok.

backup: zip

Atualizar estrutura: expulsar usuários do aplicativo pra mexer nos DBFs. Pode ser até dbCreate() e APPEND FROM ou algo parecido. Cuidado que ao contrário do Clipper, no Harbour não pode alterar o tipo de campo, e também teste pra ver se a capacidade numérica vai aguentar valores já salvos (isso mesmo)

É criar um modelo simples, fazer testes simples, depois testes cada vez mais abrangentes.
Pode começar fazendo atualizações sem importância, só de teste mesmo, pra ver se funciona.
Inventa um dbf qualquer pro aplicativo, só pra testar atualização, antes de fazer com os dbfs do aplicativo
E por aí vai.
Sem pressa... vai devagar pra ir preparando pra todas as exceções que poderiam acontecer.
Começa acompanhando... fazendo a mesma coisa de hoje, mas automático e olhando se deu algum problema. Fez sempre manual, então se acompanhar as primeiras atualizações automáticas, não vai ser trabalho a mais.

Primeira coisa o backup: ele é o ponto chave pra resolver qualquer problema das outras etapas.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar versão na mensagem de erro

Mensagem por JoséQuintas »

É que tem horas que cansa ficar repetindo.....
TUDO que tem no meu aplicativo está na lib josequintas, no GitHub.
Isso inclui atualização on-line, atualizar estruturas, criar zip, enviar email, gtwvg, rmchart, pdfclass, classe pra cadastros, mapas do google, e tudo mais que meu aplicativo tem, menu com mouse, multithread, ADO, ADO e MySQL, ADO e Excel, email de erro, e tudo mais, nem lembro de tudo pra descrever.

Na prática, qualquer um pode pegar aquele aplicativo, modificar o menu, aproveitar as opções que interessam, remover as que não interessam, e acrescentar as opções próprias.
A partir daí, pode ter aplicativo atualizando on-line, atualizando estruturas automático, fazendo backup, etc.
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/
Responder