DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL
  • Syntaxe 1 : Ouvrir une connexion prédéfinie : gestion automatique des connexions
  • Syntaxe 2 : Utiliser une chaîne de caractères pour le provider OLE DB
  • Syntaxe 2 et 3 : En cas d'échec, la description de la connexion n'est pas conservée
  • Pseudo-connexion à une base de données HFSQL Classic
  • Différences entre les fonctions HOuvreConnexion et HDécritConnexion
  • Fichier UDL (fichier de description de connexion OLE DB)
  • Connecteur Natif Oracle : gestion de l'authentification externe
  • Limitations
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
Ouvre une connexion à une base de données spécifique. La connexion reste ouverte jusqu'à l'appel de la fonction HFermeConnexion. La fonction HOuvreConnexion permet de :
  • ouvrir une connexion prédéfinie.
  • définir et ouvrir une connexion. Il est ensuite nécessaire d'affecter cette connexion à un fichier de données avec la fonction HChangeConnexion.
  • définir et ouvrir une connexion en utilisant une chaîne de connexion. Cette syntaxe peut être utilisée avec certains providers OLE DB ayant des chaînes de connexion ADO spécifique.
    PHP Cette option n'est pas disponible.
  • ouvrir une connexion définie avec une variable de type Connexion.
Attention : L'ordre d'utilisation des fonctions permettant de se connecter à une base de données HFSQL Client/Serveur est important. Consultez Optimiser les temps de connexion aux bases HFSQL Client/Serveur pour plus de détails.
WindowsLinuxAjaxHFSQL ClassicHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)
MaConnexion est une Connexion
// Description de la connexion
MaConnexion.Utilisateur = "USER" 
MaConnexion.MotDePasse = "PASSWORD" 
MaConnexion.Serveur = "MONSERVEUR" 
MaConnexion.BaseDeDonnées = "Base de données" 
MaConnexion.Provider = hAccèsHFClientServeur 
MaConnexion.Accès = hOLectureEcriture 
MaConnexion.InfosEtendues = "Infos étendues" 
MaConnexion.OptionsCurseur = hCurseurClient 
HOuvreConnexion(MaConnexion)
Syntaxe

Ouvrir une connexion prédéfinie Masquer les détails

<Résultat> = HOuvreConnexion(<Connexion>)
<Résultat> : Booléen
  • Vrai si l'opération a été réalisée,
  • Faux en cas de problème (par exemple, lors d'une connexion décrite par programmation, certains paramètres utilisés dans la fonction HDécritConnexion peuvent être inexacts).
La fonction HErreurInfo permet d'identifier l'erreur.
<Connexion> : Chaîne de caractères ou variable de type Connexion
Connexion à une base de données. Cette connexion correspond :
  • soit au nom de la connexion définie sous l'éditeur d'analyses,
  • soit au nom de la connexion définie par la fonction HDécritConnexion. La description de la connexion doit être connue au moment de l'exécution de la fonction.
  • soit au nom d'une variable de type Connexion.

Définir et ouvrir une connexion Masquer les détails

<Résultat> = HOuvreConnexion(<Nouvelle 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 affecter cette connexion à un fichier, utilisez la fonction HChangeConnexion. La description de la connexion sera détruite lors de la fermeture de la connexion.
<Nouvelle connexion> : Chaîne de caractères ou variable de type Connexion
Nom de la nouvelle connexion à définir et à ouvrir. Ce nom ne doit pas être déjà utilisé par une autre connexion (connexion définie dans l'analyse, ou définie avec la fonction HOuvreConnexion ou HDécritConnexion).
Ce paramètre correspond à la propriété Nom utilisée sur une variable de type Connexion.
<Utilisateur> : Chaîne de caractères
Nom de l'utilisateur utilisé pour la base de données. Ce paramètre peut être modifié et récupéré grâce à la propriété Utilisateur utilisée sur une variable de type Connexion.
<Mot de passe> : Chaîne de caractères optionnelle
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. Ce paramètre peut être modifié grâce à la propriété MotDePasse utilisée sur une variable de type Connexion.
<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 connu et modifié grâce à la propriété Source (ou Serveur) utilisée sur une variable de type Connexion.
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.
<Base de données> : Chaîne de caractères optionnelle
Nom de la base de données à utiliser sur la source de données. Si ce paramètre n'est pas nécessaire, utilisez une chaîne vide ("").
Ce paramètre peut être connu et modifié grâce à la propriété BaseDeDonnées utilisée sur une variable de type Connexion.
Dans le cas d'une base de données découpée en schémas, le nom du schéma dans la base de données sera précisé par la fonction HChangeNom.
Si cette base de données n'existe pas, cette base sera automatiquement créée.
Connecteurs Natifs (Accès Natifs) DB2 : Ce paramètre n'est pas nécessaire.
<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 de données HFSQL Classic.
    hAccèsHFClientServeurConnecteur Natif à une base de données 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èsNatifPostgreSQLConnecteur 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.
    hOledbAccess2007Provider OLE DB pour Access 2007.
    hOledbAccess2010Provider OLE DB pour Access 2010.
    hOledbDBase5Provider OLE DB pour DBase 5.
    hOledbExcel97Provider OLE DB pour Excel 97.
    hOledbExcel2000Provider OLE DB pour Excel 2000.
    hOledbExcel2007Provider OLE DB pour Excel 2007.
    hOledbLotus4Provider OLE DB pour Lotus 4.
    hOledbOracleProvider OLE DB pour Oracle.
    hOledbSQLServerProvider OLE DB pour SQL Server


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.
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).
Ce paramètre peut être connu et modifié grâce à la propriété Provider utilisée sur une variable de type Connexion.
<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.
HFSQL Client/Serveur Cette constante est ignorée.
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 connu et modifié grâce à la propriété Accès utilisée sur une variable de type Connexion.
PHP Ce paramètre n'est pas disponible.
<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és 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 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, cette base de données n'est pas créée et la fonction HOuvreConnexion 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 une de ces 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é et modifié grâce à la propriété InfosEtendues.
PHP Ce paramètre n'est pas disponible.
<Options supplémentaires> : Constante optionnelle
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é.
Par défaut, ce paramètre correspond à la combinaison de constantes suivante :
hCurseurServeur + hCurseurOpenKeySet + hCurseurOptimiste
Toutefois, ces paramètres peuvent varier en fonction des informations retournées par la base.
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é et modifié grâce à la propriété OptionsCurseur.
PHP Ce paramètre n'est pas disponible.
WEBDEV - Code ServeurAjax

Définir et ouvrir une connexion en définissant la chaîne de connexion Masquer les détails

<Résultat> = HOuvreConnexion(<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. La description de la connexion sera détruite lors de la fermeture de la connexion.
<Connexion> : Chaîne de caractères
Nom de la nouvelle connexion à définir et à ouvrir. Ce nom ne doit pas être déjà utilisé par une connexion (connexion définie dans l'analyse, ou définie avec la fonction HOuvreConnexion ou HDécritConnexion).
<Chaîne de connexion ADO> : Chaîne de caractères
Chaîne de connexion ADO à utiliser. 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
WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Syntaxe 1 : Ouvrir une connexion prédéfinie : gestion automatique des connexions

  • La connexion associée à un fichier de données est automatiquement ouverte lors de l'ouverture du fichier de données. La connexion est fermée lorsque le dernier fichier de données utilisant cette connexion est fermé.
  • Si une connexion est ouverte avec la fonction HOuvreConnexion, cette connexion reste ouverte même si aucun fichier de données ne l'utilise.
  • Si l'application effectue de nombreuses ouvertures et fermetures de fichiers de données successives, la gestion automatique des connexions va provoquer de nombreuses ouvertures/fermetures des connexions, entraînant d'importants ralentissements. Il est dans ce cas conseillé d'utiliser la fonction HOuvreConnexion pour forcer la conservation de la connexion ouverte.
WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Syntaxe 2 : 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, créez une connexion par exemple sur HFSQL Client/Serveur.
  2. Dans l'écran de description de connexion, 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 dans la syntaxe 2 à la place des constantes.
Utiliser une chaîne de caractères pour le provider OLE DB
WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Syntaxe 2 et 3 : En cas d'échec, la description de la connexion n'est pas conservée

Si l'ouverture de la connexion échoue, la description de cette connexion n'est pas validée. Il est ainsi possible de redéfinir une connexion du même nom.
Par exemple, si la tentative de connexion échoue avec le mot de passe par défaut, il est possible de réaliser une nouvelle tentative avec un autre mot de passe.
WEBDEV - Code ServeurAjaxHFSQL Classic

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 ces descriptions avec une base de données HFSQL Classic, il suffit de spécifier la constante hAccèsHF7 comme nom de provider.
Les fichiers de données au format HFSQL Classic 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>.

Différences entre les fonctions 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, 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 de données Oracle, dans un traitement bien spécifique, la connexion à la base de données 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
WEBDEV - Code ServeurAjaxOLE DB

Fichier UDL (fichier de description de connexion OLE DB)

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.
WEBDEV - Code ServeurConnecteurs Natifs (Accès Natifs)

Connecteur Natif Oracle : gestion de l'authentification externe

Pour se connecter via une authentification externe, il est nécessaire d'utiliser les paramètres de connexion suivants :
  • <Nom de l'utilisateur> = / (slash)
  • <Mot de passe> = "" (chaîne vide)
Remarque : L'authentification externe consiste à se baser sur le nom de l'utilisateur Windows et son mot de passe pour se connecter à la base de données. L'authentification externe nécessite un paramétrage du serveur. Reportez-vous à la documentation de Oracle pour savoir comment autoriser les authentifications externes sur le serveur.

Limitations

    Composante : wd300hf.dll
    Version minimum requise
    • Version 9
    Documentation également disponible pour…
    Commentaires
    oledb pour AS400 / iSeries
    HListeProvider() Récupère la liste des connexions disponible
    // Ex pour l'AS400
    //IBM DB2 for i5/OS IBMDA400 OLE DB Provider<TAB>IBMDA400 //
    Existing applications, applications that want the most flexible OLE DB support, including support for SQL, RLA, Data Queues, and Commands.
    //IBM DB2 for i5/OS IBMDARLA OLE DB Provider<TAB>IBMDARLA // RLA-only support, forward-only cursors and block fetches with RLA.
    //IBM DB2 for i5/OS IBMDASQL OLE DB Provider<TAB>IBMDASQL // SQL-only support, SQL commitment control, and MTS.

    gConnexion est une Connexion
    gConnexion..Provider="IBMDASQL"
    gConnexion..Utilisateur="MonProfil"
    gConnexion..MotDePasse="MonMdp"
    gConnexion..Serveur="192.168.1.1"
    HOuvreConnexion(gConnexion)
    Lionel
    19 juin 2018

    Dernière modification : 04/01/2024

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