OVH Cloud OVH Cloud

ADO.state

5 réponses
Avatar
jc2nantes
Salut,

J'ai toujours un pb avec ma base ADO distante.

j'utilise ADO.state pour vérifier l'état de la connection. le but étant de
me connecter à une base de secours en cas de problème sur le réseau.

voila la manip :

je test ADO.state avec un timer, résultat 1, c'est tout bon...
je débranche le cable réseau, ADO.state donne toujours 1!!! ça marche pas,
hein!

j'obtiens 0 SEULEMENT si auparavant je ferme moi même la connection avec la
commande .close...

vous voyez ou est le loup???

merci

5 réponses

Avatar
Jean-Pierre Thomasset
Le probleme est que la connection ne sait pas que le cable est débranché,
par contre à la premiere requete elle le saura. Tu peux peut-etre essayer de
lancer une requete dont tu es sur du resultat : Un bete select dans une
table fait l'affaire et verifier le résultat.

A+,
JP.

"jc2nantes" wrote in message
news:
Salut,

J'ai toujours un pb avec ma base ADO distante.

j'utilise ADO.state pour vérifier l'état de la connection. le but étant de
me connecter à une base de secours en cas de problème sur le réseau.

voila la manip :

je test ADO.state avec un timer, résultat 1, c'est tout bon...
je débranche le cable réseau, ADO.state donne toujours 1!!! ça marche pas,
hein!

j'obtiens 0 SEULEMENT si auparavant je ferme moi même la connection avec
la
commande .close...

vous voyez ou est le loup???

merci




Avatar
jc2nantes
"Jean-Pierre Thomasset" a écrit dans le message de
news:41456bf5$0$15560$
Le probleme est que la connection ne sait pas que le cable est débranché,
par contre à la premiere requete elle le saura. Tu peux peut-etre essayer


de
lancer une requete dont tu es sur du resultat : Un bete select dans une
table fait l'affaire et verifier le résultat.




ok je vais tester un traitement d'erreur à l'exe de la requete et voir ce
qui se passe.... à plus!
Avatar
Christian
Il te suffit seulement de mettre le bout de code mis dans la réponse à ton
1er post comme procédure publique dans un module puis de faire référence à
cette connexion. Par exemple comme ça :

Sub OpenDataBase()
'Crée une connexion à la base de données en mode ADO
Set AdoConnexion = New ADODB.Connection
Sconnexion = "Provider=Microsoft.Jet.OLEDB.4.0;data source =" &
adresseBD;Jet OLEDB:Database Password=MonPWD"
'Connexion avec la base de données
AdoConnexion.Open Sconnexion
' Vérifie que la connexion est bien établie, dans le cas contraire un
message l'indique
If AdoConnexion.State = adStateClosed Then
MsgErrSystem "La Connexion avec la base de données a echouée" & vbCrLf &
Err.Number & " " & Err.Description
End If
End Sub

Pour exécuter ta requête il te suffit ensuite de faire dans ta procédure :
' Ouverture de la connexion avec la BD
call OpenDataBase
' Exécution de la Rq
adoconnexion.execute MaRequete

Après n'oublie pas de fermer les objets Ado. Cela permet de ne pas avoir
trop de connexion ouverte en même temps et cela évite de surcharger la
mémoire.

Ce qui donne :
AdoConnexion.close
set Adocnnexion = nothing

Christian.



"jc2nantes" a écrit dans le message de news:


"Jean-Pierre Thomasset" a écrit dans le message


de
news:41456bf5$0$15560$
> Le probleme est que la connection ne sait pas que le cable est


débranché,
> par contre à la premiere requete elle le saura. Tu peux peut-etre


essayer
de
> lancer une requete dont tu es sur du resultat : Un bete select dans une
> table fait l'affaire et verifier le résultat.
>

ok je vais tester un traitement d'erreur à l'exe de la requete et voir ce
qui se passe.... à plus!




Avatar
jc2nantes
j'essaie ça et je te dis...

merci et à plus!

"Christian" a écrit dans le message de
news:4145ff23$0$23289$
Il te suffit seulement de mettre le bout de code mis dans la réponse à ton
1er post comme procédure publique dans un module puis de faire référence à
cette connexion. Par exemple comme ça :

Sub OpenDataBase()
'Crée une connexion à la base de données en mode ADO
Set AdoConnexion = New ADODB.Connection
Sconnexion = "Provider=Microsoft.Jet.OLEDB.4.0;data source =" &
adresseBD;Jet OLEDB:Database Password=MonPWD"
'Connexion avec la base de données
AdoConnexion.Open Sconnexion
' Vérifie que la connexion est bien établie, dans le cas contraire un
message l'indique
If AdoConnexion.State = adStateClosed Then
MsgErrSystem "La Connexion avec la base de données a echouée" & vbCrLf &
Err.Number & " " & Err.Description
End If
End Sub

Pour exécuter ta requête il te suffit ensuite de faire dans ta procédure :
' Ouverture de la connexion avec la BD
call OpenDataBase
' Exécution de la Rq
adoconnexion.execute MaRequete

Après n'oublie pas de fermer les objets Ado. Cela permet de ne pas avoir
trop de connexion ouverte en même temps et cela évite de surcharger la
mémoire.

Ce qui donne :
AdoConnexion.close
set Adocnnexion = nothing

Christian.



"jc2nantes" a écrit dans le message de news:

>
> "Jean-Pierre Thomasset" a écrit dans le


message
de
> news:41456bf5$0$15560$
> > Le probleme est que la connection ne sait pas que le cable est
débranché,
> > par contre à la premiere requete elle le saura. Tu peux peut-etre
essayer
> de
> > lancer une requete dont tu es sur du resultat : Un bete select dans


une
> > table fait l'affaire et verifier le résultat.
> >
>
> ok je vais tester un traitement d'erreur à l'exe de la requete et voir


ce
> qui se passe.... à plus!
>
>




Avatar
Guy DETIENNE
Salut ;O)

Si l'accès à ta base de données est dépendante d'un serveur, il suffirait
peut-être simplement de tester à intervalle régulier l'accès à celui-ci.
Différentes méthodes :

- Vérification existance d'un fichier
- Ping de l'adresse IP ou le nom NetBios
- Connexion TCP/IP entre ton application et le serveur avec WinSock
- ...

Guy


"jc2nantes" a écrit dans le message de news:

Salut,

J'ai toujours un pb avec ma base ADO distante.

j'utilise ADO.state pour vérifier l'état de la connection. le but étant de
me connecter à une base de secours en cas de problème sur le réseau.

voila la manip :

je test ADO.state avec un timer, résultat 1, c'est tout bon...
je débranche le cable réseau, ADO.state donne toujours 1!!! ça marche pas,
hein!

j'obtiens 0 SEULEMENT si auparavant je ferme moi même la connection avec
la
commande .close...

vous voyez ou est le loup???

merci