Fórum Banco de dados hospedado em nuvem #620697
08/11/2023
0
Alan
Curtir tópico
+ 0Post mais votado
08/11/2023
Essa não seria nem de longe o cenário ideal para uma aplicação desktop, visto que você provavelmente vai precisar manter uma transação aberto no momento que faz as requisições, deixando o sistema lento e exposto, além do alto consumo de dados o que pode aumentar o custo.
Para a finalidade que você esta querendo, o recomendado seria criar uma api e seu sistema consumir essa api.
Não programo em Delphi ja faz algum tempo, mas sei que hoje existe alguns frameworks que possibilitam criar uma api com pouco esforço.
Boa sorte!
Claudio Andrade
Gostei + 1
Mais Posts
08/11/2023
Alan
Essa não seria nem de longe o cenário ideal para uma aplicação desktop, visto que você provavelmente vai precisar manter uma transação aberto no momento que faz as requisições, deixando o sistema lento e exposto, além do alto consumo de dados o que pode aumentar o custo.
Para a finalidade que você esta querendo, o recomendado seria criar uma api e seu sistema consumir essa api.
Não programo em Delphi ja faz algum tempo, mas sei que hoje existe alguns frameworks que possibilitam criar uma api com pouco esforço.
Boa sorte!
Obrigado Cláudio.Poderia me indicar algum hospedeiro pra hospedar meu banco de dados ,e me explicar mais ou menos como seria feito essa api?
Gostei + 0
08/11/2023
Arthur Heinrich
Seu sistema pretende acessar um banco remoto. Neste contexto, remoto pode ser na própria máquina ou a milhares de Km de distância. Você terá que utilizar uma conexão de rede para isso e ela pode falhar.
Para evitar que uma falha de conexão (não detectada pelo banco) preserve sua sessão com transações em aberto, que podem reter locks e provocar bloqueios, o ideal é que uma requisição ao banco represente uma transação completa.
Por exemplo, se uma transação envolve múltiplas tabelas, ela poderia ser executada via stored procedure. Assim, uma única chamada iniciaria e terminaria a transação, liberando os locks.
Também não é bom, abrir e fechar conexões a cada comando enviado. A autenticação de um usuário é bastante custosa, consome recursos importantes e isto limitaria a capacidade do banco e a velocidade da sua aplicação.
O ideal é utilizar um pool de conexões, reutilizadas, caso hajam tarefas sendo executadas em paralelo, ou que a aplicação mantenha a conexão aberta durante a execução da aplicação.
Ao executar um comando, em caso de falha, você pode reabrir a conexão e reenviar o comando.
Você pode simplificar essa tarefa encapsulando a execução em uma procedure sua, que faça a verificação e, se necessário, reabra a conexão. Se você não fizer isso, terá um sistema com múltiplos pontos de falha e terá que checar falhas de conexão em muitos locais, replicando código desnecessariamente.
A alternativa de menor esforço e nada elegante é, ao detectar um problema, peça desculpas ao usuário pela falha, feche o programa e o usuário que tente novamente.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)