Necessito fazer a atualização do meu sistema automático

Delphi

Oracle PL SQL

15/10/2019

Necessito fazer a atualização do meu sistema automática já que hoje é feita manualmente, eu precisaria criar uma rotina onde meu cliente conseguiria facilmente atualizar o executável e os arquivos de Schema e relatórios ou que isso seja feito automaticamente por algum tipo de serviço, e que conseguisse de dentro do meu sistema rodar o script para atualização dos objetos no banco de dados(Oracle).

Se alguém tiver uma ideia e puder me ajudar, agradeço desde já.
Neto Vieira

Neto Vieira

Curtidas 0

Melhor post

Luiz Vichiatto

Luiz Vichiatto

15/10/2019

Olá Neto!
Bom é bem possível que utilize o delphi versões antes da 10, acredito, e tudo é gerado em um único executável (não tem nada de errado, apenas imaginando).

Dei manutenção em um sistema assim e foi um pouco trabalhoso mas valeu, aprendi bastante.

A ideia é atualizar automaticamente, então, no meu caso eu estabeleci um roteiro, pois tinha a facilidade do programa realizava uma conexão com um FTP de forma obrigatória, então tinha um facilitador.

O roteiro que utilizava:
1) ao abrir o sistema ele conectava com o ftp e realizava o download de um arquivo com formato .ini e continha uma linha versao_atual=v100x
2) conferia a versão atual do arquivo e a versão atual do sistema, caso divergente o sistema realizava o download do novo programa(*) do site, endereço especifico com o instalador do programa
3) quando concluído e a confirmação do sucesso do download, a rotina executava um programa secundário que encerrava o programa principal e iniciava a instalação da nova versão.
(*) o novo programa é o pacote de instalação gerado pelo INNO Setup.

Caso queira discutir sobre este item entre em contato.

Espero ter apontado para uma direção na solução do seu problema.

Até, e sucesso!

Att
GOSTEI 1

Mais Respostas

Neto Vieira

Neto Vieira

15/10/2019

A parte de baixar o novo executável comparando a versão eu entendi e realmente não é meu maior problema. O que está me quebrando a cabeça é como eu faço para conseguir rodar o Script das alterações do Banco. Sendo que não faço ideia de como fazer isso no Oracle.

Atenciosamente, Neto.
GOSTEI 0
Luiz Vichiatto

Luiz Vichiatto

15/10/2019

Hummmm, isto você tem que ter um usuário do tipo 'owner', com permissão para rodar script e grants de banco.

Você fará a conexão com este usuário "root/admin" do banco, executa os scripts, que estará no código do programa secundário ou criptografadas, execute os scripts, e de as permissões necessárias para todos os usuários.

E pronto. (Nossa parece simples :D:D:D:D)

Requer testar, testar e testar, até encontrar um padrão específico.

Você terá que se utilizar um segundo programa para isto, o mesmo programa não consegui, devido ao fato que o atualizador/instalador ficava acusando que ainda estava em execução.


GOSTEI 0
Neto Vieira

Neto Vieira

15/10/2019

Sim, mas não quero que meu cliente tenha acesso o banco diretamente, quero que ele importe um arquivo com os scripts dentro do meu sistema e atualize no banco de dados. Não tenho ideia de com fazer meu sistema importa direto para dentro do oracle o script.
GOSTEI 0
Luiz Vichiatto

Luiz Vichiatto

15/10/2019

Sim, mas não quero que meu cliente tenha acesso o banco diretamente, quero que ele importe um arquivo com os scripts dentro do meu sistema e atualize no banco de dados. Não tenho ideia de com fazer meu sistema importa direto para dentro do oracle o script.


Se você passou ao cliente todas as definições de cada arquivo para importação tem que ser gerado, você pode fazer a importação por 'bulk insert' (pesquise sobre o assunto).

https://www.devmedia.com.br/como-importar-dados-para-o-sql-server-usando-o-bulk-insert/6009
GOSTEI 0
Neto Vieira

Neto Vieira

15/10/2019

Dei uma olhada porem com o Oracle é diferente a questão do Bulk Select.
GOSTEI 0
Luiz Vichiatto

Luiz Vichiatto

15/10/2019

Dei uma olhada porem com o Oracle é diferente a questão do Bulk Select.


Acredito que a linha para sua solução pode passar por este caminho, dentro do sistema você terá que avaliar se vai ser viável ou não.
Implementar não deve ser o problema, agora se financeiramente vai valer a pena é outra cosia.
Você pode criar um módulo, ou utilizar ferramenta de ETL, ou desenvolva como um outro programa. Estamos ultrapassando para área da especulação de como pode ser, e já está fora do que você quer, mas idéias não vão faltar.

Espero ter ajudado.

Att
Bons códigos!

GOSTEI 0
POSTAR