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

#1 Re : C et C++ » PQconnectdb et PQconnectdbParams retournent CONNECTION_BAD » 27/06/2011 17:35:21

Résolu !

Merci beaucoup, c'était donc celà. Pour info, l''autre serveur (8.4) n'existe plus, il a été supprimé au passage de squeezy à sid.
J'ai mis le port 5433, celui par défaut et cela fonctionne.
Maintenat j'attaque les soucis du passge de la version 2 à 3 de gtk...

#2 Re : C et C++ » PQconnectdb et PQconnectdbParams retournent CONNECTION_BAD » 27/06/2011 17:08:57

J'ai deux fichiers dans /var/log/postgresql
-L'un pour la version 8.4 qui n'a pas d'entrée posterieure au 18/06
-L'autre pour la version 9.0 (celui qui ne se remplit pas)
Y en a-t-il d'autres qui soient pertinents ?
Ou bien, y a-t-il une fonction pour demarrer postgresql 9 pour les programmes c ? (/etc/init.d/postgresql start a été fait)
/etc/postgresql/9.0/main/start.conf contient des commentaires et "auto".

#3 Re : C et C++ » PQconnectdb et PQconnectdbParams retournent CONNECTION_BAD » 27/06/2011 16:08:55

Oui, je suis sous debian.
Le fichier log est bien là.
Je l'ai affiché avec sudo cat /var/log/postgresql/postgresql-9.0-main.log

Si je me connecte avec psql sur une base qui n'existe pas, iil me refuse la connexion et il se remplit :
"la base de donn?es << toto >> n'existe pas"

Si je lance mon programme, il refuse aussi mais il ne se remplit pas.

En tout cas merci, il y a plein de fichiers log ici, je n'ai jamais regardé dans le répértoire /var/log, ca a l'air pratique.

#4 Re : C et C++ » PQconnectdb et PQconnectdbParams retournent CONNECTION_BAD » 27/06/2011 15:01:19

eh bien merci pour la vitesse de réponse.

Le mot de passe ne semble pas poser de problème, :
PQconnectionNeedsPassword() renvoie 0.

Comment puis-je regarder les messages sur le serveur ?

Je remarque aussi que dans /etc/postgresql, j'ai 2 dossiers : 8.4 et 9.0. Peut-il y avoir un conflit ? Surtout que postgresql-client 8.4 n'est plus installé.

EDIT : je ne pense pas qu'il s'agisse d'un conflit
pg_config.libpq-dev et pg_config ne me retournent que des chemins vers 9.0. par exemple :

SHAREDIR = /usr/share/postgresql/9.0

#5 Re : C et C++ » PQconnectdb et PQconnectdbParams retournent CONNECTION_BAD » 27/06/2011 14:23:57

bojour,

Ils ne sont pas affichés. Y a t'il une façon de les afficher ?
J'ai essayé de récuperer les messages avec :

PQsetNoticeProcessor(me,
                        PrintDbError,
                        NULL);

juste apres la connection et la fonction PrintDbError :

static void PrintDbError(void * UNUSED(arg), const char * message)
{
    printf("DB : %s", message);
}

rien ne s'affiche, appeler PQsetNoticeProcessor avant la connection ne change rien non plus.
merci.

EDIT :
Je n'ai rien positionné de spécial, j'ai voulu créer le langage plpgsql mais il existe déjà.
Dans mon programme, je fais

setlocale(LC_ALL, "C");

Mais avec ou sans, il n'y a aucune différence.

#6 C et C++ » PQconnectdb et PQconnectdbParams retournent CONNECTION_BAD » 27/06/2011 12:11:58

mika86
Réponses : 13

Bonjour,
Le principale est dans le titre, je n'arrive pas à me connecter avec un programme en c alors qu'avec psql, il n'y a aucun problème.
en c :

static PGconn* me;

bool DBInit(void)
{
   const char *keywords[3] = {"dbname", "user", NULL};
   const char* values[3] = {"probe", "mika", NULL};
   me = PQconnectdbParams(keywords, values, 0);
   if (PQstatus(me) != CONNECTION_OK)
   {
	printf("failed to connect to database with %s = %s and %s = %s\n", keywords[0], values[0], keywords[1], values[1]);
	exit(EXIT_FAILURE);
   }
...
}

me retourne :

failed to connect to database with dbname = probe and user = mika

alors que

psql -d probe -U mika

me retourne :


psql (9.0.4)
Saisissez « help » pour l'aide.
probe=#

À noter que je viens de réinstaller mon système récemment et que sous postgres 8.4, cela fonctionnait très bien (avec PQconnectdb).
J'ai essayé plusieurs combinaisons, sans succès. Google n'est pas très bavard non plus.
configuration : postgresql 9.0.4, debian sid, cheveux foncés.
Une idée ?
merci d'avance

Pied de page des forums

Propulsé par FluxBB