BANCO DE DADOS, QUANDO ABRIR E FECHAR?
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?
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?
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..
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á.
Independente da base, costumo ABRIR a conexão, USAR e em seguida FECHAR.
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.
Isso já foi bem debatido aqui, seno a prática mais coeerente para banco de dados, sendo especialistas, sem contar mais seguro também.
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).
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.
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.
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.
Nunca tive problemas também. Sempre usei MySQL ou SQL Server.
Tópico encerrado , respostas não são mais permitidas