ATUALIZAÇÃO DE SISTEMA CLIENTE
Alterado em 02/10/2024 06:57:31
Achei este artigo aqui mas não funcionou.
A ideia de fazer o upload do exe para o banco de dados seria excelente.
Pelo google drive seria ótimo também, mas parece ser impossível por causa da autenticação. Não acho mais um espaço na web em que eu consiga disponibilizar um link direto para download. Aí tenho que ficar entrando na máquina do cliente para fazer a atualização.
Alguém já tentou alguma solução parecida? Quais outras soluções vocês recomendam?
A ideia de fazer o upload do exe para o banco de dados seria excelente.
Pelo google drive seria ótimo também, mas parece ser impossível por causa da autenticação. Não acho mais um espaço na web em que eu consiga disponibilizar um link direto para download. Aí tenho que ficar entrando na máquina do cliente para fazer a atualização.
Alguém já tentou alguma solução parecida? Quais outras soluções vocês recomendam?
O canal seria você ter um serviço de hospedagem onde a sua aplicação verifique de tempos e tempo se tem alguma atualização e faça o download. Empresas maiores estão usando serviços como AWS e colocam os arquivos de download no S3 (que é uma área de armazenamento de arquivos) e de lá baixar o arquivo, só que o custo é mais alto e fora que você tem que gerenciar todo o ambiente.
Veja, consegui uma rotina no VBForuns e deu certo.
Agora cada vez que eu tenho uma versão nova, eu subo para o banco de dados (Mysql) e cada vez que o cliente acessa o sistema, logo no início ele é encerrado, abre um outro aplicativo que baixa a versão nova do banco de dados e executa esta nova versão. O Cliente mal vê o que acontece.
Por enquanto está funcionando. Ainda estou em período de testes,
Agora cada vez que eu tenho uma versão nova, eu subo para o banco de dados (Mysql) e cada vez que o cliente acessa o sistema, logo no início ele é encerrado, abre um outro aplicativo que baixa a versão nova do banco de dados e executa esta nova versão. O Cliente mal vê o que acontece.
Por enquanto está funcionando. Ainda estou em período de testes,
Alterado em 09/10/2024 23:35:51
Por enquanto tudo funcionando bem. 6 máquinas atualizando o exe pelo banco de dados.
Em breve, visando otimizar meu sistema, vou substituir os módulos por ActiveX DLL, aí vou precisar subir estes arquivos também.
Comento aqui os resultados, mas recomendo a alternativa para quem busca uma solução para atualizações automáticas.
(https://www.vbforums.com/showthread.php?906853-VB6-Exe-Inside-MySql&p=5656797#post5656797)
user Zx81sp
Code to store the exe in the DB:
Code to retrieve the latest exe stored in the db and save it to a file:
Tested under Win10 and MariaDB 10.4, should be 100% compatible with MySQL.
Em breve, visando otimizar meu sistema, vou substituir os módulos por ActiveX DLL, aí vou precisar subir estes arquivos também.
Comento aqui os resultados, mas recomendo a alternativa para quem busca uma solução para atualizações automáticas.
(https://www.vbforums.com/showthread.php?906853-VB6-Exe-Inside-MySql&p=5656797#post5656797)
user Zx81sp
CREATE TABLE IF NOT EXISTS `storage` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`file` longblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
Code to store the exe in the DB:
Dim bytdata() As Byte
Dim rs As DAO.Recordset
Dim db As DAO.Database
Set db = OpenDatabase("", True, False, "odbc;DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=test;UID=root;PWD=;OPTION=16427;")
Open "c: emp\myexe.exe" For Binary As #1
ReDim bytdata(LOF(1) - 1)
Get #1, , bytdata
Close #1
Set rs = db.OpenRecordset("storage", dbOpenDynaset)
rs.addnew
rs.Fields("file").AppendChunk bytdata
rs.Update
rs.Close
db.Close
Code to retrieve the latest exe stored in the db and save it to a file:
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim b() As Byte
Set db = OpenDatabase("", True, False, "odbc;DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=test;UID=root;PWD=;OPTION=16427;")
Set rs = db.OpenRecordset("Select top 1 file From storage order by id desc", dbOpenSnapshot)
ReDim b(Len(rs("file")))
b = rs("file")
Open "c: emp\mynewexe.exe" For Binary As #10
Put #10, , b
Close 10
rs.Close
db.Close
Tested under Win10 and MariaDB 10.4, should be 100% compatible with MySQL.
Tome cuidado com isso dai, se o banco de dados for local, na rede do seu cliente não deve ter muito problema, se for na internet tenha certeza de usar um usuário do banco de dados que tenha permissão apenas de leitura
Se você usar um usuário que pode ler e gravar basicamente você está dando um ponto de entrada pra alguém mal intencionado enviar um malware pra todos seus clientes.
Se você usar um usuário que pode ler e gravar basicamente você está dando um ponto de entrada pra alguém mal intencionado enviar um malware pra todos seus clientes.
Citação:Tome cuidado com isso dai, se o banco de dados for local, na rede do seu cliente não deve ter muito problema, se for na internet tenha certeza de usar um usuário do banco de dados que tenha permissão apenas de leituraSe você usar um usuário que pode ler e gravar basicamente você está dando um ponto de entrada pra alguém mal intencionado enviar um malware pra todos seus clientes.
Hoje eu utilizo o servidor UOL Mysql, mas ele não permite mais que um usuário por banco, então não posso deixar somente leitura senão eu mesmo não consigo incluir o arquivo nele.
Recomenda(m) algum outro servidor Mysql ?
Eu achei esse https://try.kamatera.com/, não sei funciona bem, pareceu interessante.
Eu coloco o .exe em uma pasta do meu site... Para evitar riscos, renomeio o .exe como .doc
O meu sistema faz o download do arquivo com o componente inet, e após baixar, renomeia ele com .exe
O meu sistema faz o download do arquivo com o componente inet, e após baixar, renomeia ele com .exe
Alterado em 17/11/2024 21:52:50
LEAO10,
Na época do vb6 era a melhor opção.
Hoje coloco no Google Cloud nos Buckets, o sistema só verifica pela data de criação do .exe, se for menor ele atualiza, Cloud é tudo de bom ,mas tem seu preço.
Citação:Eu coloco o .exe em uma pasta do meu site... Para evitar riscos, renomeio o .exe como .doc
O meu sistema faz o download do arquivo com o componente inet, e após baixar, renomeia ele com .exe
Na época do vb6 era a melhor opção.
Hoje coloco no Google Cloud nos Buckets, o sistema só verifica pela data de criação do .exe, se for menor ele atualiza, Cloud é tudo de bom ,mas tem seu preço.
Faça seu login para responder