Vous n'êtes pas identifié(e).

#1 29/01/2011 23:53:49

NOURI
Membre

connexion automatique à la base de données

Salut à tous,

J’ai besoin d’aide pour faire une reconnexion automatique à la base de données,
je vous explique, nous travaillons avec une base pg sur le réseau ce dernier n’est pas stable de tout, en fait le handle de connexion à la bdd est perdu à chaque coupure réseaux, comme ça je suis obliger de redémarrer tous les applications pour se connecter de nouveau.


pour le moment je fais ce test est je ne s'ai pas si c'est le bon code ou non ?

res = PQexec(conn,cSQL);

if ((PQresultStatus(res) == PGRES_BAD_RESPONSE) || (PQresultStatus(res) == PGRES_FATAL_ERROR))

{

status = MessageBox(vchwnd,"Notre système a détecté un problème de connexion réseaux \nVoulez-vous tenter de vous reconnecter à la base de données ?","PostgreSQL :",MB_YESNO + MB_ICONQUESTION);
			
		if(status == IDYES)
			
		{
			//ici j'appelle la fonction de connexion
		}
}

MERCI d'avance


Cordiales Salutations

Hors ligne

#2 30/01/2011 01:14:59

gleu
Administrateur

Re : connexion automatique à la base de données

En fait, à partir du moment où vous n'avez pas PGRES_TUPLES_OK, vous pouvez vous poser des questions sur la connexion. Vous pouvez aussi utiliser PQstatus pour ça.


Guillaume.

Hors ligne

#3 30/01/2011 16:21:19

NOURI
Membre

Re : connexion automatique à la base de données

MERCI Guillaume,

Effectivement j'ai déjà fais un test sur PGRES_TUPLES_OK avant de poser la question.
Bon voila ce que je voudrais savoir :
Si j’ai une table nommé test avec deux champs nom,prenom

1 er cas :
Si j’envoie cette requête au serveur

SELECT nom,prenom FROM test

La si il y a un problème réseau c’est normal d’afficher le message de reconnexion.
2 ème cas :
Si j’envoie cette requête au serveur

SELECTx nom,prenom FROM test

La il y a un erreur SQL c’est SELECTx par contre le message indique un problème réseau

Je résume je voudrais savoir si il y a un code d’erreur relative a l’echec de connexion au serveur (pas d’erruer fatal comme PGRES_FATAL_ERROR
Ou autre …)

Dernière modification par NOURI (30/01/2011 18:48:47)


Cordiales Salutations

Hors ligne

#4 30/01/2011 16:30:43

NOURI
Membre

Re : connexion automatique à la base de données

ça c'est le bon test ou non ?

if (PQstatus(conn) != CONNECTION_OK)
{
if(MessageBox(vchwnd,"Notre système a détecté un problème de connexion réseaux \nVoulez-vous tenter de vous reconnecter à la base de données ?","PostgreSQL :",MB_YESNO + MB_ICONQUESTION) == IDYES)

{
       //ici j'appelle la fonction de connexion
}

}

MERCI pour le retour

Dernière modification par NOURI (30/01/2011 16:31:04)


Cordiales Salutations

Hors ligne

#5 30/01/2011 17:40:24

gleu
Administrateur

Re : connexion automatique à la base de données

Oui, c'est le bon test.


Guillaume.

Hors ligne

#6 30/01/2011 18:51:35

NOURI
Membre

Re : connexion automatique à la base de données

MERCI Guillaume

Merci pour tous vos renseignements
wink


Cordiales Salutations

Hors ligne

Pied de page des forums