USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Usar Modulos ou não???
Pinho
PORTO
22 - PORTUGAL
ENUNCIADA !
Postada em 31/07/2006 23:26 hs            
Oi,
Eu fazia numa form este código:

Dim Rs As ADODB.Recordset
Dim Cnn As ADODB.Connection   
    Set Cnn = New ADODB.Connection
    Set Rs = New ADODB.Recordset
   
    Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:     ested1.mdb"
    Rs.CursorLocation = adUseClient
    Rs.Open "SELECT * FROM Clientes", Cnn
 
mas sempre que quiser mudar a base de dados de sitio tenho de mudar todas as forms o que não é pratico, por isso criei um modulo e faço isto:
 
Public Cnn As New ADODB.Connection
Public rs As New ADODB.Recordset
   
Public Sub Main()
    Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:     ested1.mdb"
    Form1.Show
End Sub

  
e depois na form só faço:
 
 Set rs = Cnn.Execute("select * from Grupagem")
 
Gostava de saber se ha algum inconveniente ja que vou ter 7 computadores ligados em rede a aceder todos ao banco de dados

Obrigado, Pinho
   
Cardoso G
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 01/08/2006 07:39 hs            
Pinho a conexão eu costumo colocar num modulo e abro ela uma fez só, e so fecho ela quando encerrar o programa, agora os recordeset's, so abra nas minhas sub's ou funcoes e fecho la mesmo
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 01/08/2006 15:30 hs            
Concordo com o Cardoso... não se deve usar os Recordsets abertos o tempo todo que o form estiver sendo usado. Voce deve abrir, usar e fechar imediatamente...
Se por exemplo no clique de um botao voce precisa de uma informação do Recordset, abre ele no click, usa e fecha ai mesmo... se depois no clique de outro botao for precisar, abre e fecha novamente...
Deixar recordsets abertos o tempo todo consome muita memoria e dependento do tipo de travamento, consome muito trafego na rede tambem..
Qto a conexao, é assim mesmo que tem que ser feito, abre uma vez só, e deixa aberto até fechar a aplicação, a menos que sua aplicação tenha alguma particularidade que não permita fazer isso...


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

   
Sandro
não registrado
ENUNCIADA !
Postada em 01/08/2006 16:46 hs   
Olá,
 
Só complementando o que o pessoal falou, abrir uma conexão nova em cada formulário iria reduzir muito o desempenho além de criar limitações quanto ao número de conexões ao banco de dados, pois se cada usuário abrisse dois formulários em cada estação, você teria 10 conexões ao banco ao mesmo tempo. É claro que 10 conexões não iria interferir em nada, mas imagine isso em um sistema maior com algo em torno de 50 ou 100 conexões simultâneas (ou até mais). Abrir uma única conexão no início do aplicativo e fechá-la ao encerrar o programa é o mais correto. Quanto aos recordsets, eu faço como o pessoal falou, abro, recupero o que quero e depois fecho imediatamente, porém eu sei que a ADO permite o uso de recordsets desconectados, ou seja, abra o recordset e depois desconecte ele do banco, trabalhando apenas em memória. Faça as alterações e depois reconecte e use o método UpdateBatch para atualizar realmente os registros. Se não me engano, para fazer isso deve-se definir a propriedade ActiveConnection do recordset para Nothing.
 
Um abraço,
Sandro.
   
Pinho
PORTO
22 - PORTUGAL
ENUNCIADA !
Postada em 01/08/2006 17:01 hs            
Blz,
Muito obrigado pela dica.
Ja agora, é possivel numa form eu pedir para introduzir o caminho da base de dados, e ele actualizar isso no modulo?
Pq assim depois de fazer um setup para o meu programa, eu ia a parte das configuraçoes(onde so eu tenho acesso por Login de Administrador), e dizia por exemplo: \Servidord1.mdb
 
E automaticamente ele apartir dai ia sp a esse sitio.
 
Gostava que partilhassem comigo a vossa opiniao
 

Obrigado, Pinho
   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 01/08/2006 17:21 hs            
Sim... é só vc fechar sua conexão e abrí-la novamente...
Digamos q vc abra assim:
 
'Num módulo
global strConexao as String
 
SuaConexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strConexao
 
Para mudar sua conexão feche-a, atribua o caminho à variável e depois abra-a novamente.
 
t+
 
 
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página