DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Connecteurs Natifs/Accès Natifs / Connecteur Natif PostgreSQL
  • Présentation
  • Remarques générales
  • Versions nécessaires
  • Utilisation d'ordres WLangage dans les requêtes SQL
  • Gestion de fichiers de taille importante
  • Support de Unicode avec les fonctions HFSQL
  • Gestions des alphabets avec les fonctions SQL
  • Certificats SSL
  • Spécificités générales
  • Blocage des enregistrements
  • Enregistrements identiques
  • Rubriques de type Tableau
  • Indexation partielle des mémos et indexation full-text
  • Requêtes imbriquées
  • Spécificités pour les fonctions HFSQL et SQL
  • Gestion des identifiants automatiques
  • Ordres SQL non gérés
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Connecteur Natif PostgreSQL : Spécificités et remarques
Connecteurs Natifs (Accès Natifs)Disponible uniquement avec ce type de connexion
Présentation
Les paragraphes suivants présentent les remarques générales et les spécificités du Connecteur Natif PostgreSQL.
Remarques générales

Versions nécessaires

Attention : Cette version du Connecteur Natif PostgreSQL ne fonctionne qu'avec :
  • WINDEV ou WEBDEV 2024.
  • PostgreSQL à partir de la version 7.4 (les tests ont été réalisés avec la version 8.3.6 et la version 9.1.3).

Utilisation d'ordres WLangage dans les requêtes SQL

Dans les requêtes SQL, il n'est pas possible d'utiliser des ordres WLangage.

Gestion de fichiers de taille importante

Lors de la manipulation de fichiers de taille importante, tous les enregistrements sont chargés en mémoire. Pour réduire l'occupation mémoire, il est conseillé de :
  • utiliser un filtre (fonction HFiltre) avant d'initialiser un parcours (fonction HLitPremier / HLitDernier, ...).
  • utiliser des requêtes dont les conditions de sélection soient suffisamment discriminantes.
  • éviter les recherches.

Support de Unicode avec les fonctions HFSQL

Pour utiliser des chaînes Unicode, il est nécessaire de spécifier le charset "UTF8" lors de la création de la base de données PostgreSQL. Dans ce cas, toutes les chaînes seront des chaînes Unicode.
Lorsque Unicode est supporté sur la connexion (mode par défaut), le type des rubriques texte des requêtes exécutées avec la constante hRequêteSansCorrection est Unicode. Si une chaîne Unicode est affectée dans une chaîne ANSI, WINDEV et WEBDEV font automatiquement la conversion en utilisant l'alphabet défini avec la fonction ChangeAlphabet.
Attention : La fonction ChangeAlphabet doit être utilisée AVANT d'ouvrir la connexion. Il est nécessaire de fermer et de ré-ouvrir la connexion après chaque appel de la fonction ChangeAlphabet pour que les données soient correctement converties dans l'alphabet spécifié.
Si la connexion est ANSI (option "WD Unicode Support = 0" dans les informations étendues spécifiées avec les fonctions HDécritConnexion ou HOuvreConnexion), le type des rubriques texte des requêtes exécutées avec la constante hRequêteSansCorrection est ANSI.
Pour plus de détails sur les connexions Unicode ou ANSI, consultez Programmation d'une base de données PostgreSQL avec les fonctions HFSQL.

Gestions des alphabets avec les fonctions SQL

Tous les échanges sont réalisés dans l'alphabet (charset) courant. Une erreur survient lors de la connexion si le serveur ne gère pas les conversions depuis ou vers l'alphabet courant.
Dans ce cas, il faut utiliser la fonction ChangeAlphabet avant la fonction SQLConnecte pour sélectionner un alphabet compatible avec le serveur.

Certificats SSL

Le Connecteur Natif PostgreSQL gère les connexions utilisant des certificats SSL.
Pour gérer les connexions utilisant des certificats SSL :
  1. Sur le poste serveur : Utiliser un serveur PostgreSQL gérant les connexions SSL. Consultez la documentation PostgreSQL pour savoir comment générer les fichiers de certificat SSL et configurer le serveur pour n'autoriser que les connexions SSL.
  2. Sur le poste client : Utiliser une couche client PostgreSQL compilée avec la gestion des connexions SSL.
  3. Par défaut, la couche client PostgreSQL va chercher les fichiers de certificat SSL dans le répertoire : %APPDATA%\postgresql. Par exemple : "C:\Users\Florence\appData\roaming\postgresql". Il est possible de renommer et de placer ces fichiers dans des répertoires différents en indiquant leurs emplacements dans la chaîne de connexion grâce aux mots-clés : SSL Cret, SSL Key, SSL CA.
  4. Utiliser les mot-clés correspondant aux options SSL dans les informations de connexion. Les mots-clés reconnus sont :
    • SSL Key
    • SSL Cert
    • SSL CA
    • SSL CRL
    • SSL Mode
Ces paramètres correspondent aux paramètres de même nom de la fonction PQconnectdb.
Remarque : Par défaut, le Connecteur Natif essaie d'ouvrir une connexion SSL, puis en cas d'échec une connexion non SSL.
Pour contrôler le mode d'ouverture de la connexion, il faut ajouter le mot-clé "SSL Mode" dans les informations étendues de la connexion, suivi du mode souhaité.
Exemple d'informations étendues pour utiliser les certificats par défaut : Les fichiers postgresql.crt, postgresql.key, Root.crt sont présents dans le répertoire %APPDATA%\postgresql :
Server Port=5432;SSL Mode = verify-full
Exemple d'informations étendues pour utiliser des certificats renommés :
Server Port=5432;
SSL CA = C:\Certificats SSL\CA.crt ;
SSL Cert = C:\Certificats SSL\my.crt ;
SSL Key = C:\Certificats SSL\my.key ;
SSL Mode = verify-full
Pour plus de détails, consultez la page d'aide Informations optionnelles de connexion.
Spécificités générales

Blocage des enregistrements

Les options de blocage (hBlocageEcriture et hBlocageLectureEcriture) utilisables avec les fonctions HFSQL ne sont pas gérées. En effet, les blocages sont liés aux transactions. Il ne peut pas y avoir de blocage sans une transaction en cours et seule la fin de la transaction permet de retirer le blocage.

Enregistrements identiques

Le Connecteur Natif PostgreSQL n'est pas capable de différencier deux enregistrements identiques (dont les valeurs de toutes les rubriques sont égales, sans tenir compte des rubriques de type mémo).
En cas de modification ou de suppression d'enregistrement, tous les enregistrements identiques seront modifiés ou supprimés.

Rubriques de type Tableau

Les rubriques de type Tableau ne sont pas gérées par le Connecteur Natif. Si vous utilisez une rubrique tableau, seule la valeur de l'indice 1 du tableau sera manipulable avec les fonctions HFSQL (en écriture et en lecture).

Indexation partielle des mémos et indexation full-text

L'indexation partielle des mémos ainsi que l'indexation full-text ne sont pas prises en compte :
  • lors de l'importation des tables PostgreSQL dans l'analyse.
  • lors de l'utilisation de la fonction HCréation.
Si ces fonctionnalités sont définies dans l'analyse, elles seront prises en compte uniquement lors de l'exécution de requêtes SQL (avec la constante hRequêteSansCorrection).

Requêtes imbriquées

La correction des requêtes imbriquées n'est pas gérée dans cette version de le Connecteur Natif PostgreSQL. Il est cependant possible d'utiliser la constante hRequêteSansCorrection.
Spécificités pour les fonctions HFSQL et SQL
Les spécificités pour l'utilisation des fonctions HFSQL et SQL avec le Connecteur Natif PostgreSQL sont les suivantes :
SpécificitésFonctions concernées
Requête multi-fichier :
Les fonctions HAjoute, HModifie et HSupprime ne sont pas supportées.
HAjoute
HModifie
HSupprime

Gestion des identifiants automatiques

La gestion des constantes hForceIDAuto et hFixeIDAuto est identique à la gestion réalisée par le moteur HFSQL.
Pour ré-initialiser la valeur de départ de la séquence d'un identifiant automatique après l'utilisation de la fonction HAjoute avec la constante hForceIDAuto, exécutez la requête suivante avec la constante hRequêteSansCorrection :
ALTER SEQUENCE "<NomDufichier>_<NomRubrique>_seq"
RESTART WITH [ Identifiant du début ]
Exemple : Pour que le prochain Identifiant automatique généré par PostgreSQL commence à 5, la requête à utiliser est :
ALTER SEQUENCE "MonFichier_IdAuto_seq" RESTART WITH 5

Ordres SQL non gérés

Les ordres SQL suivants ne sont pas gérés sur une source de données PostgreSQL :
  • TOP
  • CHARACTER_LENGTH
  • BIN
  • OCT
  • HEX
  • LOG10
  • PATINDEX
  • LEFT(Chaîne, taille)
Version minimum requise
  • Version 14
Documentation également disponible pour…
Commentaires
Blocage des enregistrements en écriture
Vivement la fonction de blocage des enregistrements en écriture afin de rendre plus robuste nos applications et données PostgreSql !
Pierre-yves
14 sep. 2022

Dernière modification : 18/07/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale