Atualizando o EXE pelo MySQL
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Atualizando o EXE pelo MySQL
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.
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 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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Atualizando o EXE pelo MySQL
Olá!
Saudações,
Itamar M. Lins Jr.
Queremos ver o código! Ainda mais que deve ser um campo BLOB ?Ué... o SELECT de sempre... igual a ler qualquer coisa do MySQL.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Atualizando o EXE pelo MySQL
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.
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 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
Atualizando o EXE pelo MySQL
Por enquanto quebra-galho.
Código: Selecionar todos
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 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
Atualizando o EXE pelo MySQL
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.
A atualização só precisa gravar o EXE com um nome que não existe.
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
Atualizando o EXE pelo MySQL
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.
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 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
Atualizando o EXE pelo MySQL
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.
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 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
Atualizando o EXE pelo MySQL
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.
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 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/