VERIFICAR CONEXAO COM BANCO
Fala pessoal,
Uso esta conexão para meu banco:
Funciona normalmente, mas, gostaria de saber o que uso para caso a conexão não seja bem sucedida, não quero usar um tratamento de erro e sim abrir um form quando não conectar.
Já tentei assim:
Mas, ao desligar o banco não aparece o msgbox, e sim dá erro em tempo de execução.
Vlw
Uso esta conexão para meu banco:
Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & NomeUsuario _
& [Ô];password=[Ô] & NomeSenha _
& [Ô];database=[Ô] & [Ô]Teste[Ô] _
& [Ô];server=[Ô] & NomeServer _
& [Ô];option=[Ô] & (1 + 2 + 8 + 32 + 2048 + 16384)
If gConexao.State = 1 Then
SaveSetting App.Title, [Ô]Settings[Ô], NomeServer, NomeServer
SaveSetting App.Title, [Ô]Settings[Ô], NomeUsuario, NomeUsuario
SaveSetting App.Title, [Ô]Settings[Ô], [Ô]Teste[Ô], [Ô]Teste[Ô]
end if
Funciona normalmente, mas, gostaria de saber o que uso para caso a conexão não seja bem sucedida, não quero usar um tratamento de erro e sim abrir um form quando não conectar.
Já tentei assim:
If gConexao.State = 0 Then
msgbox[Ô]bla,bla,bla[Ô]
end if
Mas, ao desligar o banco não aparece o msgbox, e sim dá erro em tempo de execução.
Vlw
amigão o que da pra você fazer é
On Erro Goto Erro:
Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & NomeUsuario _
& [Ô];password=[Ô] & NomeSenha _
& [Ô];database=[Ô] & [Ô]Teste[Ô] _
& [Ô];server=[Ô] & NomeServer _
& [Ô];option=[Ô] & (1 + 2 + 8 + 32 + 2048 + 16384)
If gConexao.State = 1 Then
SaveSetting App.Title, [Ô]Settings[Ô], NomeServer, NomeServer
SaveSetting App.Title, [Ô]Settings[Ô], NomeUsuario, NomeUsuario
SaveSetting App.Title, [Ô]Settings[Ô], [Ô]Teste[Ô], [Ô]Teste[Ô]
end if
exit sub
Goto Erro:
Formulario.Show
On Erro Goto Erro:
Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & NomeUsuario _
& [Ô];password=[Ô] & NomeSenha _
& [Ô];database=[Ô] & [Ô]Teste[Ô] _
& [Ô];server=[Ô] & NomeServer _
& [Ô];option=[Ô] & (1 + 2 + 8 + 32 + 2048 + 16384)
If gConexao.State = 1 Then
SaveSetting App.Title, [Ô]Settings[Ô], NomeServer, NomeServer
SaveSetting App.Title, [Ô]Settings[Ô], NomeUsuario, NomeUsuario
SaveSetting App.Title, [Ô]Settings[Ô], [Ô]Teste[Ô], [Ô]Teste[Ô]
end if
exit sub
Goto Erro:
Formulario.Show
Mas, tem um porem, esta conexão já vem de uma condição IF, ou seja, qualquer erro que ocorrer no form, no caso no evento Load, dará este erro e abrirá o Outro Form.
Preciso que só abra o Outro Form, caso a conexão não seja bem sucedida.
Preciso que só abra o Outro Form, caso a conexão não seja bem sucedida.
pego o numero do erro que ocorre quando a conexão não é bem sucedida e faça
On Erro Goto Erro:
Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & NomeUsuario _
& [Ô];password=[Ô] & NomeSenha _
& [Ô];database=[Ô] & [Ô]Teste[Ô] _
& [Ô];server=[Ô] & NomeServer _
& [Ô];option=[Ô] & (1 + 2 + 8 + 32 + 2048 + 16384)
If gConexao.State = 1 Then
SaveSetting App.Title, [Ô]Settings[Ô], NomeServer, NomeServer
SaveSetting App.Title, [Ô]Settings[Ô], NomeUsuario, NomeUsuario
SaveSetting App.Title, [Ô]Settings[Ô], [Ô]Teste[Ô], [Ô]Teste[Ô]
end if
exit sub
Goto Erro:
if err.Number=[Ô]numero do erro[Ô] then
Formulario.Show
end if
On Erro Goto Erro:
Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & NomeUsuario _
& [Ô];password=[Ô] & NomeSenha _
& [Ô];database=[Ô] & [Ô]Teste[Ô] _
& [Ô];server=[Ô] & NomeServer _
& [Ô];option=[Ô] & (1 + 2 + 8 + 32 + 2048 + 16384)
If gConexao.State = 1 Then
SaveSetting App.Title, [Ô]Settings[Ô], NomeServer, NomeServer
SaveSetting App.Title, [Ô]Settings[Ô], NomeUsuario, NomeUsuario
SaveSetting App.Title, [Ô]Settings[Ô], [Ô]Teste[Ô], [Ô]Teste[Ô]
end if
exit sub
Goto Erro:
if err.Number=[Ô]numero do erro[Ô] then
Formulario.Show
end if
esqueci de um detalhe no if
if err.Number=[Ô]numero do erro[Ô] then
Formulario.Show
else
msgbox err.Number & [Ô] - [Ô] & err.Description
end if
if err.Number=[Ô]numero do erro[Ô] then
Formulario.Show
else
msgbox err.Number & [Ô] - [Ô] & err.Description
end if
Boa ideia Luiz, valeu.
Tópico encerrado , respostas não são mais permitidas