OS MYSQL DE PLANTAO
Amigos mysql de plantão, vejam só, trabalho com banco de dados on line, tenho uma hospedagem.. tudo bunitinho, creio alguns de vcs tambem, pergunto o seuginte para vcs.. como vs(a) estao fazendo com relação ao timeout do banco? tipo.. se a minha internet cai, a minha conexao vai para o saco tb.. como vcs estao tratando isso? quando da o timeout, a mensagem de erro.. vcs tratam diretamente a mensagem?
Amigo, eu não tenho problemas de timeout pois eu conecto e desconecto do BD, minhas SQLs são bem compactas ou seja nunca uso SELECT * FROM só trago o necessário.
Entendi de certa forma, entao vc ta dizendo que.. se eu so conectar no banco, carregra meus rs, preencher os componentes que preciso e depois destruir os rs mais a conexao resolve meu problema? ou seja, ele nao vai dar timeout entao pela logica nao ne.. pois se vc ja tem todas informacoes na tela.. agora pergunto o seguinte.. com os componentes complemtante desconectados, nao fica lento quando tem que se reconectar nao? tipo.. a reconexao não e demorada nao?
tecnicamente, a demora se dá nos blocos de código onde é efetuada a conexão, mas se vc conectar, carregar aas informações na tela e desconectar, o usuário não perceberá a diferença de tempo entre as 2 formas de código, e sendo que esta, é a forma mais [Ô]garantida[Ô] digamos assim, de se trabalhar com banco de dados on-line. vc tbm pode fazer um tratamento em seu código que, caso detecte a desconexão do banco, efetue uma nova conexão.
espero ter ajudado.
espero ter ajudado.
Eu trabalho do seguinte modo.
eu abro minha conexão e depois para não perde a conexao com timeout de 15 s criei uma sql(select 1) no timer que fica no form principal. com isso ele ele sempre fica pingando no servidor web, e com essa sql informada não pesa nada o sistema.
coloca o timer para roda em 14 a 14 seg.
ve se da para entender a explicação.
eu abro minha conexão e depois para não perde a conexao com timeout de 15 s criei uma sql(select 1) no timer que fica no form principal. com isso ele ele sempre fica pingando no servidor web, e com essa sql informada não pesa nada o sistema.
coloca o timer para roda em 14 a 14 seg.
ve se da para entender a explicação.
Public Function ConectaBD(ByVal VlOper As Boolean)
On Error GoTo ErrorLine
If VlOper = True Then
DoEvents
Set CNN = New Connection
SERVIDOR = [Ô][Ô] & ReadINI([Ô]Conexao[Ô], [Ô]SERVIDOR[Ô], App.Path & [Ô]\ConfigServidor.ini[Ô])
BASEDEDADOS = [Ô][Ô] & ReadINI([Ô]Conexao[Ô], [Ô]BancoDeDados[Ô], App.Path & [Ô]\ConfigServidor.ini[Ô])
PORTA = [Ô][Ô] & ReadINI([Ô]Conexao[Ô], [Ô]PORTA[Ô], App.Path & [Ô]\ConfigServidor.ini[Ô])
USUARIO = [Ô][Ô] & ReadINI([Ô]Conexao[Ô], [Ô]USUARIO[Ô], App.Path & [Ô]\ConfigServidor.ini[Ô])
DCSENHA = [Ô][Ô] & ReadINI([Ô]Conexao[Ô], [Ô]SENHA[Ô], App.Path & [Ô]\ConfigServidor.ini[Ô])
SENHA = [Ô][Ô] & Cr.Descripitografia(DCSENHA)
SSTR = [Ô]DRIVER={MySQL ODBC 5.1 DRIVER};[Ô] _
& [Ô]Server=[Ô] & SERVIDOR & [Ô];[Ô] _
& [Ô]Port=[Ô] & PORTA & [Ô];[Ô] _
& [Ô]Database=[Ô] & BASEDEDADOS & [Ô];[Ô] _
& [Ô]UID=[Ô] & USUARIO & [Ô];[Ô] _
& [Ô]PWD=[Ô] & SENHA & [Ô];[Ô] _
& [Ô]OPTION=[Ô] & 1 + 2 + 8 + 32 + 2048 + 16384
With CNN
.CursorLocation = adUseClient
.ConnectionString = SSTR
.Open SSTR
End With
Else
ConectaBD True
If CNN.State = 1 Then CNN.Close
Set CNN= Nothing
End If
Exit Function
ErrorLine:
MsgError
End Function
Toda abertura de funçao que necessitar consultar o banco de dados digite
ConectaBD TRUE
e no final digite
ConectaBD FALSE
Citação:Jander, até entendi, mas como vai ser a query que vou fazer?:
Eu trabalho do seguinte modo.
eu abro minha conexão e depois para não perde a conexao com timeout de 15 s criei uma sql(select 1) no timer que fica no form principal. com isso ele ele sempre fica pingando no servidor web, e com essa sql informada não pesa nada o sistema.
coloca o timer para roda em 14 a 14 seg.
ve se da para entender a explicação.
então meu camarada, a query é essa mesmo que passei
dim sql as string
sql= [Ô]select 1[Ô]
coloca ela dentro do timer..
com esse query a consulta não fica pesada nunca. heheh
dim sql as string
sql= [Ô]select 1[Ô]
coloca ela dentro do timer..
com esse query a consulta não fica pesada nunca. heheh
Citação:rsrsrs.. nao entendi essa select sua .. ou seja, é uma select buscando uma menor tabela por exemplo??? entao se eu executar essa query eu nao preciso ficar abrindo e fechando banco a cada consulta .. concordam?:
então meu camarada, a query é essa mesmo que passei
dim sql as string
sql= [Ô]select 1[Ô]
coloca ela dentro do timer..
com esse query a consulta não fica pesada nunca. heheh
Colega vila nova tratar do assunto diretamente....
é simples, pegue o código de erro e trate com uma mensagem ao usuário, a idéia do colega jander, se não me engano é para o caso de sua conexão estar lenta, se desejar verificar se quando a conexão volta, crie um ping com o ip do seu site.
é simples, pegue o código de erro e trate com uma mensagem ao usuário, a idéia do colega jander, se não me engano é para o caso de sua conexão estar lenta, se desejar verificar se quando a conexão volta, crie um ping com o ip do seu site.
Tópico encerrado , respostas não são mais permitidas