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
|
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
|
|
|
|
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 _____________________________________________________ "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
|
|
|
|
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+
|
|
|
|