DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL
  • Syntaxe 1 : Utiliser une chaîne de caractères pour le provider OLE DB
  • Syntaxe 1 : Pseudo connexion à une base de données HFSQL Classic
  • Différences entre HOuvreConnexion et HDécritConnexion
  • Utilisation du Connecteur Natif xBase avec des alphabets non latin
  • Fichier UDL
  • Connecteur Natif MySQL
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Décrit une nouvelle connexion à une base de données externe. Cette connexion est nommée. Des paramètres spécifiques peuvent être définis tels que le mode de gestions des curseurs (si la base de données accédée le permet).
Pour associer cette connexion à une table ou un fichier de données, utilisez la fonction HChangeConnexion.
Pour ouvrir la connexion, utilisez la fonction HOuvreConnexion. Si les paramètres de la connexion décrite avec HDécritConnexion ne sont pas corrects, la fonction HOuvreConnexion renverra une erreur.
Grâce à la fonction HDécritConnexion, une description de table Oracle importée dans l'analyse peut être manipulée directement avec des fichiers de données HFSQL Classic. Il suffit de décrire une connexion temporaire à une base de données HFSQL Classic puis de l'associer à la description de fichier présente dans l'analyse. Pour plus de détails, consultez les Exemples.
Cette fonction est conservée par compatibilité. Il est conseillé d'utiliser une variable de type Connexion et ses propriétés pour décrire une connexion.
PHP Seul l'accès à une base de données MySQL, MariaDB ou à une base de données AS/400 est autorisé.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)
HDécritConnexion("MaConnexion", "", "", ...
	"Serveur_SQLServer", "dbo", hAccèsNatifSQLServer, hOLectureEcriture, "")
Syntaxe

Description d'une connexion par programmation Masquer les détails

<Résultat> = HDécritConnexion(<Connexion> , <Utilisateur> [, <Mot de passe>] , <Source de données> , <Base de données> , <Provider OLE DB ou Connecteur Natif> [, <Accès> [, <Informations étendues>]] , <Options supplémentaires>)
<Résultat> : Booléen
  • Vrai si l'opération a été réalisée,
  • Faux en cas de problème. La fonction HErreurInfo permet d'identifier l'erreur.
Pour ouvrir cette connexion, utilisez la fonction HOuvreConnexion (cette fonction renverra une erreur si les paramètres de la connexion ne sont pas corrects).
Pour affecter cette connexion à un fichier de données, utilisez la fonction HChangeConnexion.
<Connexion> : Chaîne de caractères
Nom de la nouvelle connexion à définir.
Si ce nom est déjà utilisé par une connexion existante, l'ancienne connexion est remplacée par la nouvelle connexion. L'ancienne connexion (ainsi que les fichiers de données qui l'utilisaient) sont automatiquement fermés.
<Utilisateur> : Chaîne de caractères
Nom de l'utilisateur utilisé pour la base de données. Ce paramètre peut être récupéré grâce à la propriété CxUtilisateur.
<Mot de passe> : Chaîne de caractères optionnelle ou Chaîne secrète
Mot de passe de la connexion (si ce mot de passe existe). Si aucun mot de passe n'est nécessaire, utilisez une chaîne vide ("") ou le mot-clé NULL.
Nouveauté 2025
Utilisation de chaînes secrètes : Si vous utilisez le coffre-fort de chaînes secrètes, le type de la chaîne secrète utilisable pour ce paramètre doit être "Chaîne Ansi ou Unicode".
Pour plus de détails sur les chaînes secrètes et l'utilisation du coffre-fort, consultez Coffre-fort de chaînes secrètes.
<Source de données> : Chaîne de caractères
Chemin complet de la source de données. La connexion sera créée et ouverte pour cette source de données. Ce paramètre peut être récupéré grâce à la propriété CxBaseDeDonnées.
Connecteurs Natifs (Accès Natifs) XML : Ce paramètre correspond au nom du fichier XML.
HFSQL Client/Serveur Ce paramètre correspond au nom du serveur. Il est possible de préciser le numéro de port utilisé par le serveur HFSQL. Par défaut, le numéro de port utilisé est 4900. Si le numéro de port du serveur HFSQL est différent, utilisez la notation suivante :
<Nom du poste> : <Numéro de port>
Exemple : "NomPoste:4901".
Pour une utilisation via Internet, une gestion des ports avec Firewall est nécessaire. Pour plus de détails, consultez Gestion des ports.
Il est possible d'indiquer une adresse IPv6 en écrivant l'adresse IPv6 entre des crochets. Dans ce cas, le numéro de port doit être indiqué après le crochet fermant. Par exemple : [0154:2145:2155::5554]:4900.
Java Accès par JDBC :
  • Ce paramètre correspond à l'URL de connexion à la base de données.
  • Selon le driver JDBC utilisé, il est nécessaire de spécifier le nom de la base de données dans l'URL de connexion.
AndroidWidget Android Cas d'une application Android :
  • Connexion à une base HFSQL Client/Serveur :
    • La base se trouve sur le poste de développement et est manipulée depuis un émulateur Android : utilisez l'adresse IP 10.0.2.2 avec le port du serveur. Exemple : "10.0.2.2:4900"
    • La base se trouve sur le réseau du poste de développement et est manipulée depuis un émulateur Android : utilisez le nom complet du serveur avec le domaine. Exemple : "posteServeur@domaine.com:4900" (avec le simulateur WINDEV Mobile, le nom de la machine sans le domaine peut suffire).
  • Connexion à une base SQLite :
    Chemin complet du fichier contenant la base de données SQLite sur le périphérique Android.
    Exemple : /sdcard/bdd/MaBaseDeDonnees.db
    Si le paramètre correspond à chaîne vide (""), le fichier contenant les données de la base sera créé dans le répertoire "databases" de l'application et portera le nom de l'application suivi de l'extension ".db".
<Base de données> : Chaîne de caractères
Nom de la base de données à utiliser sur la source de données, chaîne vide ("") si aucun nom ne doit être spécifié. Ce paramètre peut être utilisé si la source de données permet de spécifier la base de données à utiliser.
Par exemple, sur SQL Server, la base "Master" est la base par défaut, mais il est possible de manipuler d'autres bases, par exemple "dbo".
Pour spécifier que l'accès est sur un fichier de la base "dbo" (qui n'est pas la base par défaut), <Base de données> doit correspondre à "dbo".
Ce paramètre peut être récupéré grâce à la propriété CxInitialCatalog.
<Provider OLE DB ou Connecteur Natif> : Chaîne de caractères ou Constante
  • Nom du provider OLE DB utilisé. Pour retrouver facilement la chaîne à utiliser, utilisez l'option "Connexion" de l'éditeur d'analyses (voir Notes).

    ou
  • une des constantes suivantes :
    hAccèsHF7Pseudo-connexion à une base HFSQL Classic
    hAccèsHFClientServeurConnecteur Natif à une base HFSQL Client/Serveur.
    hAccèsNatifAS400Connecteur Natif AS/400 (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifDB2Connecteur Natif DB2 (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifInformixConnecteur Natif Informix (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifMariaDBConnecteur Natif MariaDB (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifMySQLConnecteur Natif MySQL (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifOracleConnecteur Natif Oracle (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifOracleLiteConnecteur Natif Oracle (module optionnel de WINDEV Mobile)
    hAccèsNatifPostgreSQL Connecteur Natif PostgreSQL (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifProgressConnecteur Natif Progress (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifSQLAzureConnecteur Natif SQL Azure (module optionnel de WINDEV/WEBDEV, fourni avec le Connecteur Natif SQL Server)
    hAccèsNatifSQLiteConnecteur Natif SQLite (fourni en standard avec WINDEV/WEBDEV)
    hAccèsNatifSQLServerConnecteur Natif SQL Server (module optionnel de WINDEV/WEBDEV).
    Par défaut, l'ancien Connecteur Natif est utilisé. Pour forcer l'utilisation du nouveau Connecteur Natif SQL Server, utilisez la variable H.ModeSQLServer.
    hAccèsNatifSQLServerMobileConnecteur Natif SQL Server Mobile (module optionnel de WINDEV Mobile)
    hAccèsNatifSybaseConnecteur Natif Sybase (module optionnel de WINDEV/WEBDEV)
    hAccèsNatifXBaseConnecteur Natif xBase (fourni en standard avec WINDEV/WEBDEV)
    hAccèsNatifXMLConnecteur Natif XML (fourni en standard avec WINDEV/WEBDEV)
    hODBCProvider OLE DB pour ODBC (permet d'accéder à une source de données ODBC déclarée dans les sources de données ODBC de Windows)
    hOledbAccess97Provider OLE DB pour Access 97
    hOledbAccess2000Provider OLE DB pour Access 2000
    hOledbDBase5Provider OLE DB pour DBase 5
    hOledbExcel97Provider OLE DB pour Excel 97
    hOledbExcel2000Provider OLE DB pour Excel 2000
    hOledbLotus4Provider OLE DB pour Lotus 4
    hOledbOracleProvider OLE DB pour Oracle
    hOledbSQLServerProvider OLE DB pour SQL Server

    AndroidWidget Android Les constantes disponibles sont les suivantes :
    hAccèsNatifSQLiteConnecteur Natif SQLite depuis une application Android.

    OLE DB Attention : Pour utiliser une connexion OLE DB il est nécessaire :
    • d'installer le MDAC version 2.6 minimum (installation réalisée avec WINDEV/WEBDEV et lors de la création de la version Client)
    • d'installer le provider OLE DB correspondant à la base de données manipulée.
      Ce paramètre peut être récupéré grâce à la propriété CxProviderOLEDB.

    Java Les constantes disponibles sont les suivantes :
    hAccèsHF7Pseudo-connexion à une base HFSQL Mobile
    hAccèsHFClientServeurConnexion à une base HFSQL Client/Serveur
    hAccèsJDBCMySQLAccès par JDBC à une base de données MySQL
    hAccèsJDBCSQLiteAccès par JDBC à une base de données SQLite
    hAccèsJDBCSQLServerAccès par JDBC à une base de données SQL Server

PHP Ce paramètre peut correspondre à une des constantes suivantes :
hAccèsNatifAS400Connecteur Natif AS/400 (module optionnel de WEBDEV)
hAccèsNatifMariaDBConnecteur Natif MariaDB (module optionnel de WINDEV/WEBDEV)
hAccèsNatifMySQLConnecteur Natif MySQL (module optionnel de WEBDEV)
hAccèsNatifOracleConnecteur Natif Oracle (module optionnel de WEBDEV)
hAccèsNatifPostgreSQLConnecteur Natif PostgreSQL (module optionnel de WEBDEV)
<Accès> : Constante optionnelle
Paramètre le type d'accès à la base.
hOLectureLa base de données est accessible uniquement en lecture. Seule la lecture des enregistrements est possible. Il n'est pas possible d'en ajouter ou d'en supprimer.
hOLectureEcriture
(valeur par défaut)
La base de données est accessible en lecture et en écriture. Il est possible aussi bien de lire des enregistrements que d'écrire de nouveaux enregistrements.

Ce paramètre peut être récupéré grâce à la propriété CxAccès.
PHP Ce paramètre n'est pas disponible.
Java Accès par JDBC : Ce paramètre est ignoré.
<Informations étendues> : Chaîne de caractères optionnelle
Informations optionnelles insérées dans la chaîne de connexion à la base de données. Si des mots-clés spécifiques sont reconnus, les informations correspondantes sont extraites de la chaîne de connexion. Le reste de la chaîne de connexion est envoyé à la base de données. Les paramètres extraits sont ensuite traité spécifiquement par le Connecteur Natif ou OLE DB utilisé.
Ces mots-clés doivent être indiqués de la manière suivante : "<Mot-clé> = <Valeur>;".
Il est par exemple possible de préciser le paramètre "Trusted_Connection=YES" pour utiliser une connexion avec authentification par le login NT.
OLE DBConnecteurs Natifs (Accès Natifs) Les mots-clés reconnus par OLE DB et par les Connecteurs Natifs sont présentés dans la page Informations optionnelles de connexion.
Exemple de chaîne à utiliser :
"WD Cache Size = 10000; Server Port=3306;"
HFSQL Client/Serveur Les mots-clés reconnus pour l'accès par HFSQL Client/Serveur :
BDD_EXISTETeste l'existence de la base de données. Si la base de données spécifiée n'existe pas, la fonction HDécritConnexion retourne Faux.
COMPRESSIONActive ou non la compression des données transmises entre le Client et le Serveur. Ce mot-clé peut correspondre à :
  • VRAI pour activer la compression des données.
  • FAUX pour ne pas compresser les données.
CRYPTAGEActive le cryptage des informations transmises entre le Client et le Serveur. Ce mot-clé peut prendre plusieurs valeurs :
  • RAPIDE
  • RC5_16 pour utiliser un cryptage RC5 à 16 boucles.
  • AES128 pour utiliser un cryptage AES 128 bits avec un mode d'opération OFB.
  • AES192 pour utiliser un cryptage AES 192 bits avec un mode d'opération OFB.
  • AES256 pour utiliser un cryptage AES 256 bits avec un mode d'opération OFB.

Ce paramètre peut être récupéré grâce à la propriété CxInfosEtendues.
PHP Ce paramètre est ignoré.
Java Base de données HFSQL accédée à l'aide d'un serveur RMI : Ce paramètre correspond à l'adresse du serveur RMI et au port utilisée. Le format à utiliser est le suivant : "RMI=<Adresse du serveur>:<Numéro du port>". Par exemple : "RMI=192.168.52.148:1099".
Java Accès par JDBC : Ce paramètre est obligatoire. Il doit correspondre au nom complet du driver JDBC à utiliser. Ce nom est sensible à la casse.
<Options supplémentaires> : Constante
Si ce paramètre n'est pas spécifié, le moteur HFSQL détermine automatiquement les meilleurs paramètres à utiliser en fonction de la base accédée et du provider OLE DB utilisé.
Pour forcer certains paramètres, il est possible de combiner les constantes suivantes :
  • Emplacement des curseurs
    hCurseurClientCurseur géré par le MDAC. Offre souvent plus de fonctionnalités qu'un curseur serveur. Un curseur client est obligatoirement un curseur statique.
    hCurseurServeurCurseur géré par la base de données. Ce curseur peut répercuter facilement les changements effectués par d'autres utilisateurs sur les données.
  • Type de curseur
    hCurseurDynamiqueCurseur offrant de nombreuses fonctionnalités, mais consommant beaucoup de mémoire. Ce curseur autorise tous les types de déplacement. Il permet d'accéder à toutes les modifications, ajouts et suppressions réalisées par les autres utilisateurs.
    hCurseurForwardOnlyCurseur rapide et consommant peu de mémoire. Le déplacement se fait du premier enregistrement au dernier. Les données modifiées par les autres utilisateurs ne sont pas visibles.
    hCurseurOpenKeySetCurseur manipulant un jeu d'enregistrements figé. Seules des clés correspondant à l'enregistrement sont stockées et non les enregistrements (peu de ressources mémoire utilisées). Les enregistrements supprimés ne sont plus accessibles. Les modifications réalisées par les autres utilisateurs sont visibles (mais pas les ajouts).
    hCurseurStatiqueRécupère une copie de tous les enregistrements de la requête en mémoire (consommation mémoire importante). Tous les types de déplacement sont autorisés.
  • Mode de blocage
    hCurseurLectureSeuleLe jeu d'enregistrements manipulé ne pourra pas être modifié.
    hCurseurOptimisteL'enregistrement n'est verrouillé que lors de sa mise à jour
    hCurseurPessimisteL'enregistrement est verrouillé dès son édition pour être modifié.
Attention : tous les providers OLE DB ne gèrent pas tous les types de curseur.
Ce paramètre peut être récupéré grâce à la propriété CxOptionsCurseur.
PHP Ce paramètre est ignoré.
WINDEVWEBDEV - Code ServeurCode Utilisateur (MCU)Ajax

Description d'une connexion à partir d'une chaîne de connexion ADO Masquer les détails

<Résultat> = HDécritConnexion(<Connexion> , <Chaîne de connexion ADO> [, <Accès>])
<Résultat> : Booléen
  • Vrai si l'opération a été réalisée,
  • Faux en cas de problème. La fonction HErreurInfo permet d'identifier l'erreur.
<Connexion> : Chaîne de caractères
Nom de la nouvelle connexion à définir. Si ce nom est déjà utilisé par une connexion existante, l'ancienne connexion est remplacée par la nouvelle connexion. L'ancienne connexion (ainsi que les fichiers de données qui l'utilisaient) sont automatiquement fermés.
<Chaîne de connexion ADO> : Chaîne de caractères
Chaîne de connexion ADO utilisée. Pour plus de détails sur la syntaxe de cette chaîne de connexion, consultez la documentation du provider OLE DB utilisé.
<Accès> : Constante optionnelle
Paramètre le type d'accès à la base.
hOLectureLa base de données est accessible uniquement en lecture. Seule la lecture des enregistrements est possible. Il n'est pas possible d'en ajouter ou d'en supprimer.
hOLectureEcriture
(valeur par défaut)
La base de données est accessible en lecture et en écriture. Il est possible aussi bien de lire des enregistrements que d'écrire de nouveaux enregistrements.
Remarques
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)PHPAjaxHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Syntaxe 1 : Utiliser une chaîne de caractères pour le provider OLE DB

Pour trouver facilement la chaîne de caractères à utiliser pour définir le provider OLE DB, il est conseillé de procéder de la manière suivante :
  1. Dans l'éditeur d'analyses, affichez la fenêtre de description de connexion : sous le volet "Analyse", dans le groupe "Connexions", cliquez sur "Connexions".
  2. Sélectionnez le provider à utiliser (combo "Connexion par").
  3. La chaîne de caractères correspondant au provider s'affiche. Cette chaîne de caractères peut être utilisée pour désigner le provider OLE DB utilisé dans le paramètre <Provider OLE DB>.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)PHPAjaxOLE DBConnecteurs Natifs (Accès Natifs)

Syntaxe 1 : Pseudo connexion à une base de données HFSQL Classic

Des fichiers de données OLE DB ou natifs sont décrits sous l'éditeur d'analyses. Pour manipuler par programmation ces descriptions avec une base de données HFSQL, il suffit de spécifier la constante hAccèsHF7 comme nom de provider.
Cette connexion pourra ensuite être affectée aux fichiers de données concernés par la fonction HChangeConnexion.
Les fichiers de données au format HFSQL correspondant à la description des fichiers OLE DB ou natifs seront créés si nécessaire dans le répertoire défini par le paramètre <Source des données>. Par défaut ces fichiers de données sont créés vides.

Différences entre HOuvreConnexion et HDécritConnexion

Méthode 1 : Pour ouvrir une connexion au début de l'application et la refermer à la fin, il est nécessaire d'utiliser la fonction HOuvreConnexion. Pour utiliser cette connexion lors de la manipulation des fichiers de données ou des tables, il suffira de changer cette connexion avec la fonction HChangeConnexion.
HOuvreConnexion(MaConnexion, params) // ouverture de la connexion
HChangeConnexion(UnFichier, MaConnexion)
Méthode 2 : Pour décrire par programmation une connexion et l'ouvrir automatiquement lors de l'ouverture du fichier de données, il suffit :
  • de décrire la connexion avec la fonction HDécritConnexion.
  • d'associer cette connexion à la description de fichier de données voulue avec la fonction HChangeConnexion. L'ouverture de la connexion ne sera réalisée qu'au premier accès au fichier de données.
Cette solution peut être très utile lorsqu'une application manipule à la fois des fichiers de données HFSQL et des fichiers de données Oracle. Par exemple, si l'application utilise un seul fichier Oracle, dans un traitement bien spécifique, la connexion à la base Oracle ne sera faite qu'en cas de besoin.
Si pour ce même type d'application la première solution est retenue, la connexion (qui peut être relativement longue) sera effectuée à chaque lancement de l'application.
Exemple :
HDécritConnexion(MaConnexion, params)
HChangeConnexion(UnFichier, MaConnexion)
...
HLitPremier(UnFichier) // Ouverture de la connexion
...
HFerme(UnFichier) // Fermeture de la connexion
WINDEVWEBDEV - Code ServeurConnecteurs Natifs (Accès Natifs)

Utilisation du Connecteur Natif xBase avec des alphabets non latin

Pour utiliser le Connecteur Natif xBase avec des alphabets non latin, il est nécessaire de demander au Connecteur Natif d'effectuer une conversion OEM/ANSI standard. Il suffit pour cela de spécifier dans les informations étendues la chaîne suivante :
OEMTOANSI=WINDOWS;
Exemple :
  1. Ajouter dans le code d'initialisation du projet, le code permettant de modifier l'alphabet :
    ChangeAlphabet(alphabetChinois)
  2. Créer une connexion xBase :
    HDécritConnexion("CnxxBase", "", "", fRepExe(), "", hAccèsNatifXBase, hOLectureEcriture, ...
    	"OEMTOANSI=WINDOWS;")
    HChangeConnexion("*", "CnxxBase")
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxOLE DB

Fichier UDL

Pour créer un fichier UDL :
  1. Créez un fichier texte portant l'extension "UDL".
  2. Double-cliquez sur ce fichier. La fenêtre des propriétés des liaisons de données s'ouvre.
  3. Paramétrez la connexion.
  4. Testez la connexion.
  5. Validez (bouton "OK"). Le fichier UDL est utilisable.
WINDEVWEBDEV - Code ServeurEtats et RequêtesConnecteurs Natifs (Accès Natifs)

Connecteur Natif MySQL

Pour être à jour des nouveautés MySQL (par exemple, changement du mode d'identification par défaut), il est nécessaire de mettre à jour la couche cliente de MySQL (fichier LibMySQL.DLL). Pour plus de détails, consultez Connecteur Natif MySQL.
Classification Métier / UI : Code métier
Composante : wd300hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 05/11/2024

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