Rupture réseau laison odbc

Résolu
napalmde Messages postés 2 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 9 novembre 2004 - 9 nov. 2004 à 17:01
napalmde Messages postés 2 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 9 novembre 2004 - 9 nov. 2004 à 17:37
Bonjour,
Je réalise une passerelle entre deux base de données pour une synchronisation temps réel.

J'ai déclaré mon ADODB.Connection en globale que j'ouvre au démarrage du programme.

Je fais ca pour éviter de devoir l'ouvrir systématiquement et perdre du temps de connexion vu que les bases sont distantes et le temps d'execution des requêtes très courtes.

Mon soucis est le suivant :
Comment faire pour détecter une coupure réseau pour rétablir ma connexion adodb au plus tôt. Style un évènement ou similaire...

Je teste en permanence le .state mais tant qu'une requête n'a retourné une erreur il reste à 1 même si l'ip publique d'un des 2 serveurs à changée...

Je ne sais pas si je suis clair, mais je vous remercie d'avance pour l'aide.

2 réponses

cs_Prince Charmant Messages postés 34 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 30 novembre 2004
9 nov. 2004 à 17:08
Salut,

Normalement, on ne laisse pas une connexion ouverte pour rien.
Toutefois,

1° Cas
tu peux faire un formulaire masqué avec un contrôle Timer (ou minuterie sous access) qui va effectuer une opération simple (type SELECT * FROM MaTable;).
Si cette opération échoue, ferme puis réouvre la connexion.

2° Cas
Tu créés une interface programme entre ADO et ton programme pour toute les action que tu veux faire. Par exemple, les fonctions:
MyOpenRecordSet(...), ...
Ces fonctions vont tester la connexion "par force" (retour d'erreur et pas de contrôle sur l'état).

A+
3
napalmde Messages postés 2 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 9 novembre 2004
9 nov. 2004 à 17:37
Je garde le timer :) Merci pour l'idée..

C vrai qu'il ne faut pas garder les connexion ouvertes..
Mais en fait , si je réouvre à chaque fois je ne fais qu'un requete par seconde.... en gardant ouvert je monte à 5 requêtes/sec....

Donc j'ai fais le mal.... je garde ouvert :)
0
Rejoignez-nous