CLASSE PRA FUNCIONAR EM TODO PROJETO

ARNALDOCRUZ 20/08/2010 14:29:40
#350808
Boa tarde

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.

TECLA 24/08/2010 17:44:52
#351144
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.
FFCOUTO 24/08/2010 18:04:49
#351146
ARNALDOCRUZ,

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.

ARNALDOCRUZ 25/08/2010 00:46:58
#351172
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.

FOXMAN 25/08/2010 11:59:39
#351211
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.


Tópico encerrado , respostas não são mais permitidas