Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

miruiz

Descobrir se conexão está ativa

Recommended Posts

Ola amigos, dei uma pesquisada e não encontrei resposta para minha duvida, então lá vai:Possuo um pequeno form onde manipulo um banco de dados. No botão cancelar, coloco "cnn.close" para evitar problemas. Acontece que o usuário pode querer fechar o form pelo "X" da barra de títulos. Ai ele não fecha a conexão, e se abrir o form novamente, dá pau. Então, inserir o codigo "cnn.close" no evento unload do form. O prob é que qdo fecho pelo "X" dá tudo certo, mas ao fechar usando o botão cancelar, dá pau, pq ele tenta executar o código do unload, mas a conexão já está fechada. Que comando eu posso utilizar para detectar se a conexão está ativa ou não? seria algo assim:if conexão=ativa thencnn.closeelseexit subendifComo fazer essa rotininha ai de cima? Grato pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

OBS : Esse codigo abaixo , faz você economizar linhas nos seus forms . Você colocando esse codigo no module , você nao presizará colocar mais codigo para conexao do banco de dados , acabou aquelas linhas de codigos que ficam em todos os seus formularios .faz o seguinte , crie um Module . vai no Module e coloca esse codigo nela . esse codigo é de conexao ao banco de dados.

Global cn As ADODB.ConnectionGlobal rs As ADODB.RecordsetPrivate Sub Main()Dim strArquivo As StringDim strLocal As StringDim Conexao As StringSet cn = New ADODB.Connectioncn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;" & "Data Source=" & _App.Path & "\dentista.mdb;"cn.Opennomedoformquevaiiniciar.ShowEnd Sub

Essa declaração global ela serve para qualquer formulario , você nao presiza declarar a variavel nos forms , você declarou ela como global no module ela vai servir para todo os formularios .Depois você vai no Project1 Properties do Forms , e no Startup Object você coloca Sub Main .Altere essa linha

nomedoformquevaiiniciar.Show

para o nomedoseuformulario.show .aqui vai um exemplo de insert e select com esse codigo .cn.Execute (" Insert into Agendar_Consulta (hora,data,tel_res,tel_rec,nom_pac) values ('" & hora.Text & "','" & data.Text & "','" & tele_res.Text & "','" & tele_rec.Text & "','" & nome.Text & "') ")perceba que esse cn.execute -> cn é a String que abre a Conexao ao banco de Dados e o execute vai executar o que estiver dentro do () vai ser executado .Sempre que você quiser fazer uma consulta , delete , update ou insert você usa cn.execute(" Select .....") ....Qualquer dúvida , digita ai que ajudaremos você :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para descobrir se a conexão está ativa faça o seguinte:

If conexao.State <> 0 Then ' 0 = desconectada		conexao.CloseEnd If

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.