Je travaille sur une application C supposée parler à PostgreSQL. À l'heure actuelle, je dois gérer les avis et les avertissements envoyés par le serveur, mais je ne sais pas comment le faire fonctionner. Le (très peu clair) documentation dit que nous devrions utiliser PQsetNoticeReceiver pour définir une méthode en tant que récepteur des notifications, car le récepteur par défaut transmet simplement la notification à PQnoticeProcessor et cela imprime à stderr.Traitement des notifications PostgreSQL
J'ai défini une méthode ainsi
static void noticeReceiver(void *arg, const PGresult *res)
et je le définir comme le récepteur de notification par défaut au démarrage ainsi
PQsetNoticeReceiver(conn, noticeReceiver, NULL);
Dans ma mise en œuvre de la méthode que je suis simplement l'impression d'un peu au hasard caractères à l'écran mais il n'est pas appelé. Le débogage étape par étape montre qu'il est défini comme le récepteur d'avis par défaut mais n'est jamais appelé.
Des idées?
Êtes-vous sûr que votre programme reçoit des avis/avertissements? –
Je les vois sur la console, mais je veux les piéger et les manipuler. Je ne sais pas ce que je fais de mal quand je passe ma méthode à la fonction PQ. – ruipacheco
Excusez mon ignorance de C mais votre déclaration et celle des docs ne me ressemblent pas beaucoup. –