MIGRACAO DAO PARA ADO
À respeito de Migração de DAO para ADO e gostaria de esclarecer algumas dúvidas.
São elas:
Estou utilizando o próprio objeto Connection para inserir e atualizar registros no meu banco de dados Access e sempre que abro um recordset, após efetuar a operação desejado sempre fecho o mesmo.
Minha pergunta é: o meu sistema usa apenas um objeto Connection que abre a conexão com o banco de dados, esta abertura de conexão é feita no evento load do form MDI, gostaria de saber quando devo fechar esta conexão. Seria ao finalizar a minha aplicação?
São elas:
Estou utilizando o próprio objeto Connection para inserir e atualizar registros no meu banco de dados Access e sempre que abro um recordset, após efetuar a operação desejado sempre fecho o mesmo.
Minha pergunta é: o meu sistema usa apenas um objeto Connection que abre a conexão com o banco de dados, esta abertura de conexão é feita no evento load do form MDI, gostaria de saber quando devo fechar esta conexão. Seria ao finalizar a minha aplicação?
Se sua aplicação já estiver dessa forma, sim.
Mas creio que seria melhor manter a conexão sempre fechada e só abrir quando necessário.
Mas creio que seria melhor manter a conexão sempre fechada e só abrir quando necessário.
Reforçando o colega CERBERO disse, vou passar a minha visão:
Eu aconselho VC a deixar sempre a sua conecção fechada, e só abrir quando for REALMENTE utilizá-la, como em um SELECT/INSERTDELETE/UPDATE. Pois o seu sistema ficará bem mais confiável. Imagine a seguinte situação:
VC mantém a sua base de dados sempre aberta, então VC terá que ficar fazendo uma porrada de tratamento para saber se a Tabela X está aberta ou não, e se poderá ou não fazer alguma alteração nela (se não existe nenhum outro usuário fazendo um UPDATE nesta tabela). E vamos supor que, com a base de dados sempre aberta, derrepente, a máquina dá um daqueles "pau de windows" e trava a máquina exatamente na hora que o sistema estava aberto. Se a sua base de dados (principalmente se for em ACCESS) estiver aberta, certamente VC irá perder a base (irá acontecer da Base ficar Corrompida) e dependendo deste corrompimento da base, VC corre o sério risco de perder todos os dados.
Agora, SE VC manter a base fechada e só abrir quando necessário, têm um lado contra também: Conforme o tamanho da sua base de dados, cada abertura da tabela poderá demorar um pouco para abrir. Mas é muito melhor esperar um certo tempo para a abertura da Base de Dados do que correr o risco de ficar aberta e corromper os dados devido a uma fechada BRUSCA do sistema.
Eu aconselho VC a deixar sempre a sua conecção fechada, e só abrir quando for REALMENTE utilizá-la, como em um SELECT/INSERTDELETE/UPDATE. Pois o seu sistema ficará bem mais confiável. Imagine a seguinte situação:
VC mantém a sua base de dados sempre aberta, então VC terá que ficar fazendo uma porrada de tratamento para saber se a Tabela X está aberta ou não, e se poderá ou não fazer alguma alteração nela (se não existe nenhum outro usuário fazendo um UPDATE nesta tabela). E vamos supor que, com a base de dados sempre aberta, derrepente, a máquina dá um daqueles "pau de windows" e trava a máquina exatamente na hora que o sistema estava aberto. Se a sua base de dados (principalmente se for em ACCESS) estiver aberta, certamente VC irá perder a base (irá acontecer da Base ficar Corrompida) e dependendo deste corrompimento da base, VC corre o sério risco de perder todos os dados.
Agora, SE VC manter a base fechada e só abrir quando necessário, têm um lado contra também: Conforme o tamanho da sua base de dados, cada abertura da tabela poderá demorar um pouco para abrir. Mas é muito melhor esperar um certo tempo para a abertura da Base de Dados do que correr o risco de ficar aberta e corromper os dados devido a uma fechada BRUSCA do sistema.
Luiz Cesar, boa tarde.
Quando vc fala abrir o banco de dados vc está querendo dizer abrir o recordset? Porque este eu estou abrindo e fechando sempre que preciso inserir dados numa tabela ou listar os dados de uma tabela. Agora o objeto Connection, eu deixo aberto o tempo todo, só fecho quando a aplicação é finalizada. é desta "abertura" que vc esá falando? Eu não entendi muito bem.
Quando vc fala abrir o banco de dados vc está querendo dizer abrir o recordset? Porque este eu estou abrindo e fechando sempre que preciso inserir dados numa tabela ou listar os dados de uma tabela. Agora o objeto Connection, eu deixo aberto o tempo todo, só fecho quando a aplicação é finalizada. é desta "abertura" que vc esá falando? Eu não entendi muito bem.
Tópico encerrado , respostas não são mais permitidas