CLASSE PRA FUNCIONAR EM TODO PROJETO
Colegas estou começando um projeto em vbnet 2008 com firebird 2.1
creie o cadastro de clientes está funcionando perfeitamente.
no cadastro de clientes eu faço a leitura do arquivo ini monto a conectstring e faço conexão com o BD.
Eu queria fazer isso uma vez só
tipo abrir o sistema faço a leitura do arquivo ini e a conexão com o BD.
Fechei o sistema fecho a conexão com o BD.
Tipo como o vb6, onde eu crio um modulo main, e nele eu faço isso, e no fechar do form principal no evento QueryUnload eu fecho a conexão.
Citação:...tipo abrir o sistema faço a leitura do arquivo ini e a conexão com o BD.
Fechei o sistema fecho a conexão com o BD...
Eu acho meio arriscado trabalhar desta forma.
Sugiro que ABRA A CONEXÃO, EXECUTE a instrução ou consulta no BD e FECHE A CONEXÃO.
Siga o conselho do TECLA. Por experiência própria tive que mudar todo um projeto por problemas e demoras no acesso ao db fazenda da forma que você quer.
Depois de vários teste, comprovei que a melhor opção é abrir a conexão, executar a ação (consulta, inserção, exclusao, atualização) e fechar a conexão.
Com isso você libera recursos do servidor e melhora muito o desempenho.
a cada produto ou a cada venda ter que abrir conexão fechar conexão, e vcs acham mais rapido ?
eu to meio por fora, pois até então trabalho com vb6 e a conexão com o BD eu faço uma vez só na abertura do sistema e fecho a conexão no fechamento do sistema, já as tabelas eu abro e fecho em cada ação.
no vbnet eu não vi uma opção de quando eu jogar os dados como abaixo
DA = New FbDataAdapter(sqlTabela, Fbconn)
DA.Fill(ds, [Ô]tblBanco[Ô])
fazer um close ou algo do genero.
estou pensando que isso fica sobrecarregando (vai acumulando na memoria a cada vez que passa por este comando nos códigos dos forms)
A verdade é que o cara apanha quando tenta entrar em outra plataforma de desenvolvimento.
coisas simples que eu faço no vb6 estou apanhando a semanas.
Citação::
Puts imagine uma tela de venda
a cada produto ou a cada venda ter que abrir conexão fechar conexão, e vcs acham mais rapido ?
eu to meio por fora, pois até então trabalho com vb6 e a conexão com o BD eu faço uma vez só na abertura do sistema e fecho a conexão no fechamento do sistema, já as tabelas eu abro e fecho em cada ação.
no vbnet eu não vi uma opção de quando eu jogar os dados como abaixo
DA = New FbDataAdapter(sqlTabela, Fbconn)
DA.Fill(ds, [Ô]tblBanco[Ô])
fazer um close ou algo do genero.
estou pensando que isso fica sobrecarregando (vai acumulando na memoria a cada vez que passa por este comando nos códigos dos forms)
A verdade é que o cara apanha quando tenta entrar em outra plataforma de desenvolvimento.
coisas simples que eu faço no vb6 estou apanhando a semanas.
Não , mas dai esta faltando uma organização nos processos do sistema.
Criar um Fluxograma(UML) de rotinas é uma boa saida para que possamos ter o controle de certos procedimentos.
No seu caso uma venda você pode abrir a conexção no inicio da venda e fechar ao concluir.
Porém se tu usa mysql e por acaso cair a conexão vai te retornar uma Exception de LOST CONNECTION.
Veja um exemplo de fluxo de programas que pode ser seguido.
INICIO
FUNÇÃO ABREVENDA() [ô] Busca o sequencial para a venda e armazena em uma propriedade de uma classe (ex. NumeroVenda). Nesta função você irá abrir uma conexão, gerar o numero da venda e fechar a conexão.
FUNÇÃO VENDEITEM() - Insere o item em questão em uma tabela, a cada insersão você pode/deve abrir uma conexão, inserir o item e fechar a conexão.Outra opção seria você ir colocando os itens em um grid e no final da venda VARRER o grid inserindo os itens um-a-um(em uma mesma conexão) ou todos de uma vez.
FUNÇÃO FECHAVENDA() - Conclui as etapas anterirores.
Agora respondendo sua pergunta.
Eu faço da seguinte forma.
Criei um módulo e neste modulo eu fiz o seguinte
PUBLIC CLIENTE AS NEW clsClientes
[ô]onde clsclientes é a classe clientes
Se em algum momento eu setar por exemplo CLIENTE.NOMECLIENTE = [Ô]JOSé[Ô],
Em qualquer parte do projeto a propriedade nomecliente poderá ser utilizada.
após o uso deve-se destruir a variavel.