DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / Fonctions SQL
  • Tableau de correspondance entre les différents types de bases de données, leurs sources et leurs databases
  • Échec ou succès de la connexion
  • Connexion à une analyse HFSQL
  • ODBC et OLE DB : Imbrication de connexions
  • Connexion à une base de données par ODBC
  • Connecteur Natif MySQL, MariaDB et PostgreSQL
  • Connecteur Natif MySQL, MariaDB et PHP
  • Connexion à une base de données ISAM par l'intermédiaire d'ACCESS
  • Utiliser une connexion avec authentification NT
  • Connecteur Natif Oracle : gestion de l'authentification externe
  • Requête SQL (fonction HExécuteRequêteSQL ou requêtes créées par l'éditeur de requêtes)
  • Connexion à une base de données HFSQL en Java
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
Connecte l'application en cours à une base de données à interroger par SQL.
PHP Les fonctions SQL permettent de manipuler des bases de données MySQL et MariaDB et les bases de données accessibles par ODBC (par exemple HFSQL).
Linux La fonction SQLConnecte permet de se connecter à une base de données HFSQL Classic, HFSQL Client/Serveur ou une base de données accessible par ODBC.
Java Pour plus de détails sur l'utilisation des bases de données en Java, consultez Java et Base de données.
WEBDEV - Code Navigateur Les fonctions SQL permettent de manipuler des bases de données locales (de type Web SQL database). Seul le mode de parcours SQLAvance/SQLLitCol est disponible. Pour plus de détails, consultez Accès en mode local à une base de données (SQLite).
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxODBC
// Exemple de connexion via ODBC
NumConnexion est un entier
NomSource est une chaîne
// Connexion à une source de données spécifique via ODBC MS ACCESS
// (note : certains drivers ouvrent une boîte de sélection de fichiers
// si aucun fichier n'est associé à cette source)
NomSource = "MS Access 97 Database"
NumConnexion = SQLConnecte(NomSource, "", "", "", "ODBC")
SI NumConnexion <> 0 ALORS
// La connexion s'est bien passée
...
SINON
// La connexion a échoué : affichage d'un message explicatif
SQLInfoGene()
Erreur("La connexion à la source de données " + NomSource + " a échoué." + RC + ...
"Code erreur : " + SQL.Erreur + RC + SQL.MesErreur)
FIN
// Dans tous les cas (connexion OK ou pas)
SQLDéconnecte()
WINDEVWEBDEV - Code ServeurCode Utilisateur (MCU)PHPAjaxConnecteurs Natifs (Accès Natifs)
// Connexion à une base de données MySQL :
// machine apollon, login "superv", base de données client test
NumConnexion est un entier
NumConnexion = SQLConnecte("apollon", "superv", "", "test")
WINDEVJavaCode Utilisateur (MCU)
// Connexion à une base de données MySQL en utilisant un driver JDBC :
SQLConnecte("jdbc:mysql://" + monServeur + "/" + madatabase, "moi", "monpwd", "", ...
"JDBC", "com.mysql.jdbc.Driver")
 
// Connexion en utilisant une source de données ODBC :
SQLConnecte("jdbc:odbc:MaSource", "moi", "monpwd", "", "JDBC", "sun.jdbc.odbc.JdbcOdbcDriver")
 
// Connexion en utilisant une base de données HFSQL :
SQLConnecte("MonAnalyse.WDD", "", "monpwd", "", "HFSQL")
 
// Connexion en utilisant HFSQL, avec une base de données Client/Serveur :
SQLConnecte("NomServeur:port", "Utilisateur", "MotDePasse", "NomBaseDeDonnées", "HFSQLCS")
Syntaxe
<Résultat> = SQLConnecte(<Source> , <Utilisateur> , <Mot de passe> [, <Nom de la DataBase> [, <Type de la base de données> [, <Provider OLE DB> [, <Informations optionnelles>]]]])
<Résultat> : Entier
  • Identifiant de la connexion : cet identifiant est utilisé par la fonction SQLChangeConnexion.
  • 0 en cas d'erreur. Pour plus d'informations sur l'erreur, utilisez la fonction SQLInfoGene.
<Source> : Chaîne de caractères
Nom de la source de données (appelé aussi Data Source Name). Si la source de données contient plusieurs "DataBase", il est nécessaire d'indiquer le nom de la "DataBase" utilisée (paramètre <Nom de la DataBase>). Pour plus de détails, consultez les remarques.
PHPConnecteurs Natifs (Accès Natifs) MySQL et MariaDB : Ce paramètre peut correspondre au nom du poste où la base de données est disponible ou bien à son adresse IP. Par exemple, "Apollon".
Java URL de connexion à la base de données. Cette URL est spécifique à chaque driver. Par exemple :
  • Connexion à une base de données MySQL en utilisant un driver JDBC : "jdbc:mysql://" + monServeur + "/" + madatabase
  • Connexion en utilisant une source de données ODBC : "jdbc:odbc:MaSource"
  • Connexion en utilisant HFSQL : "MonAnalyse.WDD"
Linux La source peut être une base de données HFSQL Classic ou HFSQL Client/Serveur.
WEBDEV - Code Navigateur Ce paramètre correspond à chaîne vide ("").
<Utilisateur> : Chaîne de caractères
Nom de l'utilisateur. Ce nom est optionnel pour certaines sources de données : dans ce cas, utilisez une chaîne vide ("") pour ce paramètre.
WEBDEV - Code Navigateur Ce paramètre est ignoré.
<Mot de passe> : Chaîne de caractères
Mot de passe correspondant à l'utilisateur spécifié. Ce mot de passe est optionnel pour certaines sources de données : dans ce cas, utilisez une chaîne vide ("") pour ce paramètre.
WEBDEV - Code Navigateur Ce paramètre est ignoré.
<Nom de la DataBase> : Chaîne de caractères optionnelle
Nom de la DataBase à manipuler. Pour plus de détails, consultez les Remarques.
  • Si ce paramètre est précisé, une boîte de dialogue propre au driver s'affiche lors de la connexion. Cette boîte peut ne pas s'afficher en fonction du driver utilisé.
  • Si ce paramètre n'est pas précisé, aucune boîte de dialogue ne s'affiche.
PHPConnecteurs Natifs (Accès Natifs) MySQL et MariaDB : Avec le Connecteur Natif MariaDB, le nom de la database est obligatoire.
Java Ce paramètre est ignoré. La base de données doit être spécifiée dans l'URL de connexion. Cette URL est spécifique à chaque driver JDBC.
<Type de la base de données> : Chaîne de caractères optionnelle
Type de la base de données accédée. Les types de bases de données installées sur le poste en cours peuvent être connues grâce à la fonction SQLListeSource. Pour plus de détails, consultez les remarques.
Java Seules les bases de données de type HFSQL et JDBC sont accessibles dans cette version. Les bases de données accédées avec le driver JDBC sont réservées à une application Java.
WEBDEV - Code Navigateur Seules les bases de données disponibles via le navigateur sont accessibles.
<Provider OLE DB> : Chaîne de caractères ou Constante optionnelle
Nom du provider OLE DB utilisé. Voici les plus courants :
"SQLOLEDB"SQLServer
"MSDASQL"ODBC
"Microsoft.Jet.OLEDB.3.51"Access
"Microsoft.Jet.OLEDB.4.0"Access
"MSDAORA"Oracle (Microsoft)
"OraOLEDB.Oracle"Oracle
ou une des constantes suivantes :
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.

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 ou WEBDEV lors de l'installation de l'application)
  • d'installer le provider OLE DB correspondant à la base de données manipulée.
Java Nom complet du driver JDBC à utiliser.
PHP Ce paramètre est ignoré.
WEBDEV - Code Navigateur Ce paramètre est ignoré.
<Informations optionnelles> : Chaîne de caractères optionnelle (ne pas utiliser avec HFSQL ou ODBC direct)
Permet de spécifier des informations optionnelles. Il est par exemple possible de préciser le paramètre "Trusted_Connection=YES" pour utiliser une connexion avec authentification par le login NT. Si plusieurs informations optionnelles doivent être spécifiées, il est nécessaire de les rassembler dans une seule chaîne de caractères et de les séparer par le caractère ";".
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.
Java Ce paramètre est ignoré. Les informations optionnelles doivent être spécifiées dans l'URL de connexion. Cette URL est spécifique à chaque driver JDBC.
PHP Ce paramètre est ignoré.
WEBDEV - Code Navigateur Ce paramètre est ignoré.
Remarques

Tableau de correspondance entre les différents types de bases de données, leurs sources et leurs databases

Type de la base de donnéesSourceNom de la DataBase
ACCESSNom du fichier Access"" (chaîne vide)
AS400Connecteur Natif AS/400 (module optionnel)
DB2Connecteur Natif DB2 (module optionnel)
Source définie dans ODBC Administrateur.
"" (chaîne vide) ou DataBase
HYPER FILE
HFSQL
Nom de la base de données"" (chaîne vide)
HFSQLCSNom ou adresse du serveurNom de la base de données
INFORMIXConnecteur Natif Informix (module optionnel)
JDBCURL de connexion à la base de données. Cette URL est spécifique à chaque driver.La base de données doit être spécifiée dans l'URL de connexion. Cette URL est spécifique à chaque driver JDBC.
HIVEURL de connexion au serveur Hive.DataBase
MariaDBConnecteur Natif MariaDB (module optionnel)
Nom de la base de données
DataBase
MySQLConnecteur Natif MySQL (module optionnel)
Nom de la base de données
DataBase
POSTGRESQLConnecteur Natif PostgreSQL (module optionnel)
Nom de la base de données
DataBase
ODBCSource définie dans ODBC Administrateur"" (chaîne vide) ou DataBase
OLEDBNom de la source"" (chaîne vide)
ORACLEConnecteur Natif Oracle (module optionnel)
Nom de l'alias défini dans SQL NET Easy configuration et dans WDORAINS.
"" (chaîne vide)
PROGRESSConnecteur Natif Progress (module optionnel)
Source définie dans ODBC Administrateur.
"" (chaîne vide) ou DataBase
SQL AZUREConnecteur Natif SQL Azure (module optionnel livré avec le Connecteur Natif SQL Server)
Nom du serveur.
Si le nom du serveur est de type : NomServeur.database.windows.net, le login doit être de la forme : login@NomServeur.
DataBase
SQL SERVERConnecteur Natif SQL SERVER (module optionnel)
Nom du serveur.
"" (chaîne vide)
SYBASEConnecteur Natif SYBASE (module optionnel)
Nom du serveur ou son alias.
"" (chaîne vide)
xBaseConnecteur Natif xBase (livré en standard)
WEBDEV - Code Navigateur "Web SQL database"
Base de données disponible via le navigateur
(uniquement disponible sous Chrome et Safari)
"" (chaîne vide)
"" (chaîne vide)

PHP Les types de base de données supportés sont : MySQL, MariaDB, ODBC, HYPER FILE, ORACLE ou POSTGRESQL. Il est conseillé d'utiliser la constante hAccèsxxx correspondante.
Java Les types de base de données supportés sont : JDBC, HYPER FILE.
Linux Les types de base de données supportés sont : HYPER FILE.

Échec ou succès de la connexion

Si la connexion est un succès, l'identifiant de la connexion pourra être utilisé pour changer la connexion (fonction SQLChangeConnexion).
Si la connexion est un échec, les variables SQL.Erreur et SQL.MesErreur ne sont pas initialisées. Pour plus de détails sur les causes de l'échec de la connexion, utilisez la fonction SQLInfoGene.
Dans tous les cas (échec ou succès), il est nécessaire de fermer la connexion (fonction SQLDéconnecte).
PHP La déconnexion n'est pas obligatoire en cas d'échec de la connexion.
WINDEVWEBDEV - Code ServeurEtats et RequêtesJavaCode Utilisateur (MCU)AjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Connexion à une analyse HFSQL

Pour se connecter à une analyse HFSQL, utilisez la syntaxe suivante :
SQLConnecte("<Lecteur>:<Chemin complet WDD analyse>", "", "<Mot De Passe Analyse>")
Par exemple :
SQLConnecte("D:\WINDEV\WDSTOCK\WDSTOCK.WDD", "", "")
Remarques :
  • Après une connexion à une analyse HFSQL, SQL.Connexion retourne -1.
  • Pour les analyses HFSQL, une seule connexion peut être effectuée à la fois dans un même projet.
    Si l'analyse a déjà été ouverte par la fonction HOuvreAnalyse ou si le projet est associé à l'analyse, SQLConnecte n'ouvre pas l'analyse une nouvelle fois.
    Par contre, si l'analyse n'est pas encore ouverte, elle est automatiquement ouverte par SQLConnecte.
  • Si les fichiers de données HFSQL ne se trouvent pas dans le répertoire courant des programmes ou dans le répertoire décrit dans l'analyse, il faut modifier le répertoire avec la fonction HChangeRep.
  • Si un mot de passe a été spécifié pour l'analyse, ce mot de passe doit être indiqué dans le troisième paramètre de la fonction SQLConnecte.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxOLE DBODBC

ODBC et OLE DB : Imbrication de connexions

Pour ODBC et OLE DB, plusieurs appels à la fonction SQLConnecte peuvent être imbriqués (attention : cela n'est pas possible avec les bases de données HFSQL).
La dernière connexion ouverte est la connexion en cours. La fonction SQLChangeConnexion permet de modifier la connexion en cours.
La fonction SQLDéconnecte déconnecte la connexion en cours.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxODBC

Connexion à une base de données par ODBC

Pour se connecter à une base de données par ODBC, les manipulations à faire sont les suivantes :
  1. Configuration de la source de données ODBC dans ODBC Administrateur (sur le poste de développement et sur le poste de déploiement).
  2. Utilisation de la fonction SQLConnecte avec le paramètre "ODBC".
Remarque : Il est possible d'utiliser un provider OLE DB sur ODBC. Il est nécessaire d'installer le MDAC (sur le poste de développement et sur le poste de déploiement). La syntaxe à utiliser est la suivante :
<Résultat> = SQLConnecte(<Source>, <Utilisateur>, <Mot de passe>, ...
<Nom de la DataBase>, "OLE DB", hODBC)
Note : La variable SQL.HandleODBC permet de connaître le handle de la connexion ODBC pour les autres fonctions SQL sur ODBC. Cette variable est renseignée lors de la dernière utilisation de la fonction SQLConnecte. SQL.HandleODBC vaut -1 pour les autres connexions.
WINDEVWEBDEV - Code ServeurCode Utilisateur (MCU)PHPAjaxConnecteurs Natifs (Accès Natifs)

Connecteur Natif MySQL, MariaDB et PostgreSQL

Pour ouvrir une connexion à une base de données MySQL, MariaDB ou PostgreSQL par le Connecteur Natif (également appelé Accès Natif), il est nécessaire de passer en paramètre à la fonction SQLConnecte :
  • le type de la base de données utilisée, MySQL, MariaDB ou POSTGRESQL.
  • le nom de la base de données : il correspond au nom donné par l'administrateur de la base de données MySQL/MariaDB/PostgreSQL.
Remarque : Le nom de la source de données MySQL ou PostgreSQL peut être remplacé par le nom du poste où la base de données est disponible ou bien par son adresse IP. Dans tous les cas, le nom de la "DataBase" doit être spécifié.
// Connexion à une base de données MySQL locale
NumConnexion = SQLConnecte("BaseMySQL", "", "", "", "MySQL")
// ou NumConnexion = SQLConnecte("BaseMySQL", "Utilisateur", "MotDePasse", "MaDataBase", "MySQL")
 
// Connexion à une base de données MySQL distante
NumConnexion = SQLConnecte("192.168.1.51", "Utilisateur", "MotDePasse", "test", "MySQL")
WEBDEV - Code ServeurCode Utilisateur (MCU)PHPAjaxConnecteurs Natifs (Accès Natifs)

Connecteur Natif MySQL, MariaDB et PHP

Pour ouvrir une connexion en PHP :
  • à une base de données MySQL, il est conseillé d'utiliser la constante hAccèsNatifMySQL en paramètre à la fonction SQLConnecte.
  • à une base de données MariaDB, il est conseillé d'utiliser la constante hAccèsNatifMariaDB en paramètre à la fonction SQLConnecte.
Le Connecteur Natif (MySQL ou MariaDB) est nécessaire pour développer le site WEBDEV, mais il n'est pas nécessaire au fonctionnement du site : il n'est pas nécessaire d'installer le Connecteur Natif chez l'hébergeur. En effet, en exécution, c'est le client MySQL/MariaDB du moteur PHP en place qui est utilisé.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxConnecteurs Natifs (Accès Natifs)

Connexion à une base de données ISAM par l'intermédiaire d'ACCESS

La syntaxe pour se connecter à une base de données ISAM est la suivante :
SQLConnecte(<Chemin de la base de données>, <Utilisateur>, <Mot de passe>,
<Type de la base de données>, "ACCESS")
<Chemin de la base de données>Chemin ou nom complet (selon les cas) de la base de données accédée.
<Utilisateur>Nom de l'utilisateur. Il est facultatif pour certaines bases de données.
<Mot de passe>Mot de passe de cet utilisateur. Il est facultatif pour certaines bases de données.
<Type de la base de données>Type de la base de données sur laquelle la connexion doit être réalisée (le driver ISAM correspondant doit donc avoir été installé).
Type de base de données<Type de la base de données><Chemin de la base de données>
dBASE III"dBASE III"disque:\répertoire
dBASE IV"dBASE IV"disque:\répertoire
dBASE 5"dBASE 5.0"disque:\répertoire
Paradox 3.x"Paradox 3.x"disque:\répertoire
Paradox 4.x"Paradox 4.x"disque:\répertoire
Paradox 5.x"Paradox 5.x"disque:\répertoire
FoxPro 2.0"FoxPro 2.0"disque:\répertoire
FoxPro 2.5"FoxPro 2.5"disque:\répertoire
FoxPro 2.6"FoxPro 2.6"disque:\répertoire
Excel 3.0"Excel 3.0"Disque:\répertoire\fichier.xls
Excel 4.0"Excel 4.0"Disque:\répertoire\fichier.xls
Excel 5.0 ou Excel 95"Excel 5.0"Disque:\répertoire\fichier.xls
Excel 97"Excel 8.0"Disque:\répertoire\fichier.xls
HTML Import"HTML Import"Disque:\répertoire\filename
HTML Export"HTML Export"disque:\répertoire
Text"Text"disque:\répertoire

Remarques :
  • Pour que la connexion demandée puisse être effectuée, il est nécessaire d'avoir installé le driver ISAM correspondant. L'installation de MS OFFICE 97 propose plusieurs drivers ISAM.
  • Les bases de données ACCESS et ISAM ne sont accessibles qu'en 32 bits.
  • Le mot-clé du WLangage WDMemoBinaire, permettant d'ajouter ou de modifier un mémo binaire par une requête SQL, n'est pas supporté par le moteur HFSQL et le driver ACCESS. Pour une base de données HFSQL, utilisez les fonctions spécifiques de gestion des mémos.
    Il est toutefois également possible d'utiliser :
    • la fonction SQL 'UNHEX' avec un contenu hexadécimal
    • la fonction WL.Décode avec la constante encodeBASE64SansRC et une chaîne encodée en base 64.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxOLE DB

Utiliser une connexion avec authentification NT

Pour utiliser une connexion avec authentification NT, il suffit d'utiliser la syntaxe suivante :
SQLConnecte(<MaBaseDeDonnées>, Null, Null, Null, "OLEDB",
<Provider OLE DB>, "Trusted_Connection=YES")
WINDEVWEBDEV - 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 :
  • <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.
WINDEVWEBDEV - Code ServeurCode Utilisateur (MCU)AjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5OLE DBODBCConnecteurs Natifs (Accès Natifs)

Requête SQL (fonction HExécuteRequêteSQL ou requêtes créées par l'éditeur de requêtes)

Lors de l'utilisation des instructions SQL DELETE, INSERT ou UPDATE, aucun contrôle d'intégrité et aucun contrôle de doublons ne sont réalisés sur une base de données HFSQL. Cette fonctionnalité n'est pas disponible dans cette version.
Solution : Utilisez les fonctions HFSQL (HSupprime, HAjoute ou HModifie) sur vos fichiers de données. Le contrôle de l'intégrité et le contrôle des doublons seront automatiquement réalisés.
Java

Connexion à une base de données HFSQL en Java

Pour se connecter à une base de données HFSQL en Java, il est nécessaire d'utiliser la syntaxe suivante :
<Résultat> = SQLConnecte(<MonAnalyse.WDD>, <Utilisateur>, <Mot de passe>, "", "HYPER FILE")
Les fichiers suivants doivent être présents dans le même répertoire que l'archive Java générée : <MonAnalyse.WDD>, WD290jav.dll, wd290hf.dll et wd290sql.dll.
Pour plus de détails sur l'utilisation des bases de données en Java, consultez Java et Base de données.
Composante : wd290hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
problème de connexion a mysql
j'utilise ce script pour me connecter a une base de donnée mysql
NomSource = "127.0.0.1"
NumConnexion = SQLConnecte(NomSource, "root", "admin", "bdmac", "mysql")
SI NumConnexion <> 0 ALORS

SINON

SQLInfoGene()
Erreur("La connexion à la source de données " + NomSource + " a échoué." + RC + ...
"Code erreur : " + SQL.Erreur + RC + SQL.MesErreur)
FIN
SQLDéconnecte()
et je rencontre le problème suivant
La connexion à la source donnée 127.0.0.1 a échoué code erreur :2085
Impossible de charger la DLL d’accès<wd210msql.dll>.
 Debessongui fofana
16 avr. 2018

Dernière modification : 04/07/2023

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