STRING DE CONEXAO NAO REPETIVEL
Bom dia Senhores
Trabalho com Visual Basic 6 e estou Desenvolvendo um Sistema para a Faculdade na mesma linguagem,uso banco de dados MySql e toda vez que abro um crio um formulário novo tenho que ficar colocando a string de conexão.
Gostaria de saber se tem como eu nao ficar repitindo a string e toda vez que criar um form eu só coloco cn.open para abrir a conexao
Grato
Trabalho com Visual Basic 6 e estou Desenvolvendo um Sistema para a Faculdade na mesma linguagem,uso banco de dados MySql e toda vez que abro um crio um formulário novo tenho que ficar colocando a string de conexão.
Gostaria de saber se tem como eu nao ficar repitindo a string e toda vez que criar um form eu só coloco cn.open para abrir a conexao
Grato
GUILER99 bom dia, se vc estiver usando ADO, faça assim
Nesse exemplo, estou usando um banco Mysql, por isso o drive ODBC
Cria um módulo chamado AbreBanco(ou o nome q vc quiser)
Nesse módulo coloque
Public Db As ADODB.Connection
Public Sub AbreBanco()
Set Db = New ADODB.Connection
Db.Open [Ô]Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=seubanco;User=root; Password=seusenha;Option=3; (fonte site Connection Strings).[Ô]
end Sub
E no load de cada form, vc coloca
Abrebanco
Acho que isso pode te ajudar, qqer coisa posta ai
Nesse exemplo, estou usando um banco Mysql, por isso o drive ODBC
Cria um módulo chamado AbreBanco(ou o nome q vc quiser)
Nesse módulo coloque
Public Db As ADODB.Connection
Public Sub AbreBanco()
Set Db = New ADODB.Connection
Db.Open [Ô]Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=seubanco;User=root; Password=seusenha;Option=3; (fonte site Connection Strings).[Ô]
end Sub
E no load de cada form, vc coloca
Abrebanco
Acho que isso pode te ajudar, qqer coisa posta ai
Então eu Faço desse jeito,é pratico porem gostaria se tivesse uma forma de que nao colocasse em todos os forms criasse um metodo ou uma classe que todos os forms pegariame nao ficasse repetindo toda vez que criasse
Grato
Grato
Eu uso do mesmo modo do nosso colega ALVAROVB2009
porém eu abro uma vez só o banco de dados, no form Splash do programa ou no formulário principal no evento Load
e fecho quando o usuário encerrar o programa, assim não tenho que ficar usando a string de conexão todo momento.
Abro o banco quando estou usando o programa e fecho quando encerro o programa.
As tabelas não posso fazer o mesmo, pois é usada a todo momento, caso eu abrisse uma vez só aconteceria que em outro formulário eu usasse a mesma tabela
ia acontecer algum erro pois ela estaria sendo usada por outro form.
Não vem ao caso, respondendo a sua dúvida, abra uma vez só o banco no form principal e feche quando encerrar a aplicação;
Eu uso assim e não tenho problemas, mesmo sendo em rede.
porém eu abro uma vez só o banco de dados, no form Splash do programa ou no formulário principal no evento Load
e fecho quando o usuário encerrar o programa, assim não tenho que ficar usando a string de conexão todo momento.
Abro o banco quando estou usando o programa e fecho quando encerro o programa.
As tabelas não posso fazer o mesmo, pois é usada a todo momento, caso eu abrisse uma vez só aconteceria que em outro formulário eu usasse a mesma tabela
ia acontecer algum erro pois ela estaria sendo usada por outro form.
Não vem ao caso, respondendo a sua dúvida, abra uma vez só o banco no form principal e feche quando encerrar a aplicação;
Eu uso assim e não tenho problemas, mesmo sendo em rede.
GUILER99 eu falei para colocar no load de cada form, porque eu na realidade não sei como q vc trabalha, e para mim eu entendi na sua pergunta que vc cria a conexão em todo o formulário e qria saber um modo de exemplifica
Eu por exemplo faço como o Charleston10 faz, coloco em um splash e mando abrir e fico usando a variável enquanto o sistema esta aberto, e depois que fecho o sistema eu nem me incomodo de fechar a variável, pois o windows faz isso naturalmente, sei que é errado, más é um vÃcio que acabei criando rsrsrs
E pq ja ajudei também gente aki, que matava a conexão toda vez que saia de um form, então com isso tem que abrir toda hora a conexão.
Então se no seu sistema tiver um form Splash coloque o ABREBANCO que vc vai ficar com a variável aberta até vc sair do sistema, senão tiver pode colocar em um form do LOGIN, ou mesmo no load do form principal
Qqer coisa posta ai, ok
Eu por exemplo faço como o Charleston10 faz, coloco em um splash e mando abrir e fico usando a variável enquanto o sistema esta aberto, e depois que fecho o sistema eu nem me incomodo de fechar a variável, pois o windows faz isso naturalmente, sei que é errado, más é um vÃcio que acabei criando rsrsrs
E pq ja ajudei também gente aki, que matava a conexão toda vez que saia de um form, então com isso tem que abrir toda hora a conexão.
Então se no seu sistema tiver um form Splash coloque o ABREBANCO que vc vai ficar com a variável aberta até vc sair do sistema, senão tiver pode colocar em um form do LOGIN, ou mesmo no load do form principal
Qqer coisa posta ai, ok
ALVAROVB2009 disse tudo agora
Nao trabalho com VB 6 e nem MySQL mas voce poderia seguir um modelo assim:
Crie um MODULO,e declare como publico os seguintes objetos:
Toda vez que voce executar um comando,e for solicidado a conexao voce usa o objeto CONEXAO que está como public ali em cima,ou seja declarado no modulo e visivel por todo o projeto.Voce usa o metodo CONEXAO.Open() para abrir e CONEXAO.Close() para fechar.
Crie um MODULO,e declare como publico os seguintes objetos:
Public CONEXAO As New ADODB.Connection = [Ô]CONEXAO = [Ô]DRIVER={MySQL ODBC 3.51 Driver};user=usuario;password=123;server=192.168.0.255;option=20499[Ô]
Toda vez que voce executar um comando,e for solicidado a conexao voce usa o objeto CONEXAO que está como public ali em cima,ou seja declarado no modulo e visivel por todo o projeto.Voce usa o metodo CONEXAO.Open() para abrir e CONEXAO.Close() para fechar.
colega abra e feche a conexão no form principal, ou seja ao iniciar o programa abra a conexão, esta irá permanecer, e quando sair encerre e pronto, nos demais forms vc usaria apenas os recordsets
Gente Muito Obrigado pela Resposta , fico muito grato pelo interesse de voces em querer esclarecer minha duvida
Grato
Guilherme Henrique
Grato
Guilherme Henrique
Bom Dia Pessoal
Acho que o sofrimento ai pode ser resolvido de uma forma super simples (Class)
Método de usar:
Prontinhu!!!
Acho que o sofrimento ai pode ser resolvido de uma forma super simples (Class)
Private cnn As New ADODB.Connection
Public Property Get ConnectionString()
ConnectionString = [Ô][stringdeconexaoaqui][Ô]
End Property
Public Property Get ConexaoAtiva() As Connection
If Not cnn Is Nothing Then
ConexaoAtiva = cnn
End If
End Property
Public Sub AbrirConexao()
cnn.ConnectionString = Me.ConnectionString
cnn.Open
End Sub
Public Sub FecharConexao()
If cnn.State <> 0 Then
cnn.Close
End If
End Sub
Método de usar:
Dim minhacon as New Class1
minhacon.AbrirConexao
[ô]//ISSO EH UM EXEMPLO
recordset.open([Ô]select[Ô],minhacon.ConexaoAtiva)
minhacon.FecharConexao
Prontinhu!!!
Tópico encerrado , respostas não são mais permitidas