PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Erreur 37 connecteur pour postgreSQL
Erreur 37 connecteur pour postgreSQL
Débuté par Cfreddy, 21 juil. 2017 16:08 - 13 réponses
Membre enregistré
1 message
Posté le 21 juillet 2017 - 16:08
Bonjour,

Sous WinDev 22, j'ai installé le connecteur natif pour postgreSQL téléchargé sur le site PCSOFT ainsi que la couche client version 9.4.12 (librairie LIBPQ.DLL extrait du site https://www.enterprisedb.com/download-postgresql-binaries).
La version de la db postgreSQL est la 9.4.

Houvreconnexion() me retourne systématiquement une erreur 37.
Erreur 37 = < Erreur d'installation. Une fonction nécessaire à l'Accès Natif n'a pas été trouvée dans la couche client. La couche client installée n'est pas compatible avec l'Accès Natif. Il est nécessaire de ré-installer la couche client. >

je réinstalle diverses versions de couche client sans résultat.

Quelqu'un aurait-il une suggestion / solution ?

Merci d'avance
Cordialement
Membre enregistré
948 messages
Posté le 21 juillet 2017 - 17:00
Bonjour
avez-vous pris en compte la version 32 ou 64 bits ?
Posté le 22 juillet 2017 - 12:54
Bonjour,
Merci pour votre intervention.
Oui, je prends en compte la version 32 ou 64 bits.
La DLL LIBPQ.DLL est extraite de https://www.enterprisedb.com/download-postgresql-binaries).
qui existe en 32 ou 64 bits.
Cordialement
Membre enregistré
348 messages
Posté le 24 juillet 2017 - 10:50
Bonjour
Il est possible que la DLL cliente soit trop récente pour l'accès natif.

Dans l'aide ils précisent que ça a été testé avec la version 9.1.3 (https://doc.pcsoft.fr/fr-FR/?5518002&name=connecteur_natif_postgresql_specificites_remarques).

Essaye avec une DLL plus ancienne.
Tu peux aussi ne pas fournir la DLL, dans ce cas l'accès natif utilise une version ancienne qui est compatible avec les version actuelles des serveurs (je l'ai testé jusqu'à la 9.6.1) --> https://doc.pcsoft.fr/fr-FR/?5518001&name=Presentation_WDPostgreSQL

--
Pascal H. http://phapps.e-monsite.com
Membre enregistré
948 messages
Posté le 24 juillet 2017 - 13:21
Bonjour
Il est effectivement très possible qu'il y ai une incompatibilité entre l'accès natif V22 et libpq.

En Version 20 j'ai testé l’accès natif : WX200PACKPOSTGRESQL029.exe avec
- libpq version : 90304 pour une application en 64 bits
- libpq version : 90400 pour une application en 32 bits
sur des serveurs PostgreSQL 9.3, 9.4, 9.5, 9.6 (Windows) et 9.6 (Linux)
et je n'ai jamais eu ce message d'erreur.

Avez-vous fait un test juste avec libpq ?
Pour le faire
- Télécharger la petite classe http://depot.pcsoft.fr/resource.awp…
- Extraire les fichiers du binarie, dans <répertoire du projet>\<répertoire de l'exe>\libpq32 pour une application en 32 bits ou \libpq64 pour une application 64 bits
Dans le code d'un bouton mettez le code suivant :
myCnx est une clLibPQ

IF myCnx:PGConnecte("<Host name>", "<DataBase name>", "<User Name>", "<Password>", "<Port>(default 5342") THEN
Info("Connecté...")
myCnx:PGDéconnecte()
ELSE
Erreur("oup'sss")
END
Membre enregistré
948 messages
Posté le 24 juillet 2017 - 13:35
re...
Windev22 est-il installé en 32 bits ou 64 bits ? il y a un utilisateur qui avait le même genre de soucis avec Webdev22 qui était installé en 64 bits. Il a réinstallé en 32 bits et tout à fonctionné
Posté le 26 juillet 2017 - 09:46
Bonjour,

Oui revenir en 32 bits devrait solutionner le problème puisque selon la doc, < En 32 bits, en l'absence de ces dlls, le Connecteur Natif PostgreSQL utilisera une couche cliente intégrée correspondant à la version 7.4.23 de PostgreSQL. Elle contient toutes les fonctionnalités nécessaires à l'Accès Natif et est compatible avec les serveurs plus récents (8.3.6). >

C'est lourd quand le restant des applications tournent en 64 bits.!
Membre enregistré
16 messages
Posté le 24 septembre 2017 - 15:35
Bonjour,
j'ai le meme probleme.
ca fonctionne en x32 bit mais pas en x64 bit meme apres toutes ces manipulations que je ne trouve pas normal pour un logiciel professionel.
merci pour votre aide.

--
WD22 x64 - WM22 x64 - WB22 x64 - HFSQL x64
Win 10 Ent - Win 2016 Server
Membre enregistré
5 messages
Posté le 25 septembre 2017 - 13:19
Bonjour,
La solution avec la petite classe téléchargeable ici http://depot.pcsoft.fr/resource.awp… suggérée par Philippe Pasquali
ne fonctionne pas.
pcsoft m'avait annoncé qu'il y regardait. Plus d'info à ce sujet.
Je constate que le problème reste entier.
Au plaisir.
Membre enregistré
5 messages
Posté le 27 septembre 2017 - 18:36
Bon,jour Philippe,

je reçois cette erreur :

Une erreur est survenue lors du chargement de la classe C:\Mes Projets\SGM\clLibPQ.wdc.
Détail de l'erreur :
Impossible de terminer l'initialisation :
Le fichier ouvert ne contient pas une description valide d'objet Conflit Interne (DL)

Cordialement.
Membre enregistré
948 messages
Posté le 27 septembre 2017 - 19:14
Bonjour
Je me sert quasiment tous les jours de cette petite classe. Si vous voulez je peut vous l'envoyer par mail si vous me communiquez votre adresse (elle fait 80 Ko)
Membre enregistré
5 messages
Posté le 27 septembre 2017 - 21:10
Bonjour,

Oui avec plaisir.
freddy@ecomsys.be

Concrètement,
1) j'ai téléchargé sous http://pcsoft.fr/st/telec/modules-communs-22/postgresql.htm du fichier WX220PACKPOSTGRESQL037.exe
2) Installé cet exe sur le poste de développement -> Message de mise en jour : OK
3) téléchargé le fichier <libpq.dll> (extrait du postgresql-9.6.3-3-windows-binaires) pour 32 bits et ce pour plusieurs version de PG
4) copié ce fichier dans \windev22\programmes\
5) compilé le programme que voici

// Paramètres de la connexion
PG..Provider = hAccèsNatifPostgreSQL
PG..Utilisateur = "user"
PG..MotDePasse = "password"
PG..Serveur = "IP_adresse:port "
PG..BaseDeDonnées = "nom_de_la_DB"
PG..Accès = hOLectureEcriture

// Ouverture de la connexion
Info(HOuvreConnexion(PG))

retour "0"

Reçu : Erreur de l'accès natif PostgreSQL
Numéro d'erreur : 37
Fonction non trouvée : <PQresultErrorField>

Idem en 64 bits:
Reçu : Code erreur 52
L'accès natif PostGreSQL nécessite la DLL <LIBPQ.DLL> (64 bits) et ses dépendances
(Couche client PostGreSQL)
Ces dlls doivent être placées dans le même répertoire que la DLL de l'accès natif ou un répertoire du PATH

En 32 bits, On peut ne pas fournir la DLL. l'accès natif utilise alors une version ancienne qui est compatible avec les version actuelles des serveurs.
Même erreur.

Grand merci pour votre aide.
Membre enregistré
12 messages
Posté le 28 octobre 2019 - 09:58
Bonjour
Merci ma problème est résolu quand je télécharge le DLL à travers cet lien
https://www.postgresql.org/ftp/odbc/versions/dll/
et les coller dans le répertoire suivant :
C:\WINDEV 22\Programmes\Framework\Win64x86
C:\WINDEV 22\Programmes\Framework\Win32x86
:):merci:

--
ChMoeZ
Posté le 10 décembre 2024 - 15:48
moez-wm a écrit :
Bonjour
Merci ma problème est résolu quand je télécharge le DLL à travers cet lien
https://www.postgresql.org/ftp/odbc/versions/dll/
et les coller dans le répertoire suivant :
C:\WINDEV 22\Programmes\Framework\Win64x86
C:\WINDEV 22\Programmes\Framework\Win32x86
:):merci:

--
ChMoeZ


Bon, finalement la solution est la suivante: Téléchargez le fichier zip de la dernière version en 64 bits ici : https://www.postgresql.org/ftp/odbc/versions.old/dll/ et décompressez tous les dll dans le répertoire du Framework