BANCO DE DADOS, QUANDO ABRIR E FECHAR?

FNANDOOD 10/04/2011 03:47:42
#370970
Pessoal, criei um programa de escrita fiscal, para cadastro de Notas Fiscais de Entradas e Saídas.

Utilizo o banco Firebird, e minha dúvida é a seguinte:

Qual seria a maneira correta, para ABRIR, INCLUIR e FECHAR o banco de dados, para cada nota digitada?

Penso em fazer assim:
ex: digito a nota no. 1111, FORNECEDOR cnpj: 00222233366, valor contabil :00000,
1o. abro o banco para pesquisar se já existe a nota cadastrada e fecho o banco de dados;
3o. Se não está cadastrada, habilito os textbox para cadastro, então
4o. Depois que os textbox estão preenchidos e validados, abro o banco Firebird, insiro os dados, e fecho o banco.

Essa operação eu faço para cada nota que digito.

Quero saber se essa é a melhor maneira, se o meu sistema não ficará lento por abrir e fechar o BD tantas vezes em pouco tempo?



TMLNANET 10/04/2011 04:13:14
#370971
Olá amigo, sim é a melhor forma de fazer!!...imagina se vc deixasse sua conexao com o bd aberta desde a consulta inicial e um [Ô]bendito[Ô] usuário pesquisa a NF e sai para almoçar sem realizar os passos 3 e 4 (citados por vc)..sua conexao ia ficar aberta por um belo tempo!!!..isso sim ia prejudicar seu sistema..
LLAIA 10/04/2011 13:40:18
#370991
Sem falar que no caso do Firebird, é usado versionamento de registros. Um simples select é uma transação que vai criar um snapshot do registro (dependendo do isolamento transacional), se ficar aberta o tempo a conexão, alterações podem ocorrer e sua conexão não as enxergará.
TECLA 10/04/2011 14:30:03
#370996
Independente da base, costumo ABRIR a conexão, USAR e em seguida FECHAR.
LUIS.HERRERA 10/04/2011 14:50:06
#370998
Complementando, é importante lembrar que só a primeira conexão é um pouco mais lenta, nas demais os componentes já estarão carregados pelo windows em memória e assim será tão rápida que nem se percebe.
Isso já foi bem debatido aqui, seno a prática mais coeerente para banco de dados, sendo especialistas, sem contar mais seguro também.
NETMANIA 10/04/2011 18:53:20
#371006
A regra padrão para qualquer banco é abra a conexão o mais tarde possível (quando estiver com a consulta montada) e feche o mais rápido possível (depois que tiver os dados ou alterado as informações).
FEDERHEN 11/04/2011 08:15:43
#371020
Eu abro a conexão do banco no formulário mdi do projeto, ou seja, ao carregar o projeto e somente fecho a conexão ao fechar o projeto. Já trabalhei com Ms-Sql Server, Oracle, Access e MySql e nunca tive problemas com o banco, nem com integridade e nem com velocidade.

Quanto aos recordsets, esses eu faço a carga somente quando necessário e fecho assim que não são mais necessários. Utilizo o .execute para fazer Insert, Update e Delete.
CHARLESHF 11/04/2011 08:30:15
#371022
Também uso uma única conexão ao BD, do início ao fim da execução do projeto.

Nunca tive problemas também. Sempre usei MySQL ou SQL Server.
Tópico encerrado , respostas não são mais permitidas