Clipper On Line • Ver Tópico - Atualizando o EXE pelo MySQL

Atualizando o EXE pelo MySQL

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Atualizando o EXE pelo MySQL

Mensagempor JoséQuintas » 22 Mar 2022 12:34

Estou entrando em uma nova fase.
Fiz o teste e deu certo: atualizar o EXE pegando do MySQL.

Tem a atualização de fora, que salva no MySQL.
Tem a atualização dos terminais, que vai pegar direto no MySQL.
Muito rápido, mesmo pela internet.

Como faz?
Ué... o SELECT de sempre... igual a ler qualquer coisa do MySQL.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18116
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

Atualizando o EXE pelo MySQL

Mensagempor Itamar M. Lins Jr. » 22 Mar 2022 16:48

Olá!
Ué... o SELECT de sempre... igual a ler qualquer coisa do MySQL.

Queremos ver o código! Ainda mais que deve ser um campo BLOB ?

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6944
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 311 vezes
Mens.Curtidas: 505 vezes

Atualizando o EXE pelo MySQL

Mensagempor JoséQuintas » 22 Mar 2022 17:29

NÃO.
Achei o BLOB complicado, poderia ter problema com codepage.
É um VARCHAR, limitado ao tamanho default da comunicação.
o EXE gravado em base64.
Portanto, uma string comum, só que grande.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18116
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

Atualizando o EXE pelo MySQL

Mensagempor JoséQuintas » 22 Mar 2022 17:34

Por enquanto quebra-galho.

   IF AppVersaoSQLAnt() > AppVersaoSQL() .OR. AppVersaoExe() < cVersaoEXE
      MsgExclamation( "Versão do JPA antiga." + hb_Eol() + ;
         "Tentar localizar uma versão mais nova antes de continuar" )
      WITH OBJECT cnSQL
         :cSQL := "SELECT * FROM JPBINARY WHERE BINNAME='JPA.EXE'"
         :Execute()
         IF ! :Eof()
            cFileVer := :String( "BINVERSAO" )
            cFileTxt := :String( "BINVALUE" )
            cFileCrc := :String( "BINCRC32" )
         ENDIF
         :CloseRecordset()
         IF cFileTxt == Nil
            MsgStop( "ERRO: não encontrado EXE na base de dados" )
            QUIT
         ENDIF
         IF hb_NumToHex( hb_Crc32( cFileTxt ) ) != cFileCrc
            MsgStop( "ERRO: Falha na leitura do EXE da base de dados" )
            QUIT
         ENDIF
         IF ! cFileVer == Nil .AND. cFileVer < AppVersaoExe()
            MsgStop( "versão da base de dados mais antiga que atual" + hb_Eol() + ;
               "Contacte a JPA" )
            QUIT
         ENDIF
         cFileTxt := hb_Base64Decode( cFileTxt )
         FOR nCont = 2 TO 99
            cFileName := "JPA" + Ltrim( Str( nCont ) ) + ".EXE"
            IF ! File( cFileName )
               hb_MemoWrit( cFileName, cFileTxt )
               EXIT
            ENDIF
         NEXT
      ENDWITH
      MsgExclamation( "Tente carregar o JPA novamente" )
      QUIT
   ENDIF
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18116
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

Atualizando o EXE pelo MySQL

Mensagempor JoséQuintas » 22 Mar 2022 17:38

Meu esquema atual de carregar o EXE já faz o resto, carregando a versão mais nova.
A atualização só precisa gravar o EXE com um nome que não existe.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18116
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

Atualizando o EXE pelo MySQL

Mensagempor JoséQuintas » 01 Abr 2022 14:53

Utilizei essa atualização pra algo mais.

NÃO tenho mais acesso externo na empresa pra atualizar o EXE.
Mas.... tenho acesso ao MySQL.

Carreguei o EXE NA MINHA MÁQUINA.
Pedi atualização, onde o aplicativo salva o EXE no MySQL.
Ao carregarem na empresa, o EXE se atualizou pelo MySQL.

Muito legal isso, apesar de perigoso, porque se algo der errado.... vou precisar do suporte.
Mas pelo menos, se eu usar EXE mais novo antes de atualizar na empresa, consigo atualizar.

Isso também resolve a atualização de uso remoto.

Então... tem a atualização pelo EXE, que baixa do Site/FTP....
E caso eu apronte, entre com mais nova antes deles atualizarem, ele se atualiza pelo MySQL.
E para usuários fora da empresa, a atualização pelo MySQL também resolve.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18116
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

Atualizando o EXE pelo MySQL

Mensagempor JoséQuintas » 04 Abr 2022 10:10

Traduzindo melhor:

Minha atualização tradicional baixa do site e instala.

A partir de determinado momento, também salvei o EXE no MySQL, durante essa atualização.

Acrescentei uma atualização diretamente do MySQL, para quando o EXE não corresponde ao necessário.

Imprevisto:

Se eu utilizo diretamente da minha máquina, o EXE pode fazer atualizações no MySQL, e alterar o número de versão.
Nesse caso, ninguém mais consegue entrar, só eu na minha máquina, porque a versão gravada no MySQL continua anterior.
Mas... se eu entrar pela minha máquina e fizer a atualização tradicional, aí as outras máquinas podem puxar do MySQL.

Ainda imprevisto:

Se eu apenas atualizar da minha máquina, vai ser puxada a versão da internet, que pode não corresponder à atual que usei na minha máquina.

Solução:
Primeiro enviar a versão da minha máquina pra internet, como sempre foi.
Entrando pela minha máquina e atualizando, vai pegar a versão correta da internet, e gravar no MySQL.

Acho que vou precisar alguma alternativa de acesso remoto, pra emergências.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18116
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

Atualizando o EXE pelo MySQL

Mensagempor JoséQuintas » 04 Abr 2022 10:21

Ainda nisso:

Posso querer atualizar essa rotina de atualização.
Qualquer falha nisso... já era...
Só poder atualizar se o EXE estiver funcionando é um risco.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18116
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro