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, 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
  • Connexion à une base 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)
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 en passant par l'intermédiaire d'un proxy Webservice (SOAP).
Remarques :
  • Cette fonction nécessite l'installation d'un Webservice d'accès aux bases de données. Pour plus de détails, consultez Accès aux bases de données via un Webservice.
  • Cette fonction ne permet pas d'accéder à des fichiers de données protégés par un mot de passe.
Exemple
NumConnexion est un entier
 
NumConnexion = SQLConnecteWS("http://MonServeur/WDSOAPDB_WEB/", ...
"MS Access 97 Database", "", "", "", "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()
Syntaxe
<Résultat> = SQLConnecteWS(<Serveur du Webservice> , <Source> , <Utilisateur> , <Mot de passe> [, <Nom de la DataBase> [, <Type de la base> [, <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.
<Serveur du Webservice> : Chaîne de caractères
URL d'accès au serveur sur lequel a été installé le Webservice d'accès aux bases tierces. Cette URL a été spécifiée dans l'assistant d'installation du Webservice. Pour plus de détails, consultez Accès aux bases de données via un Webservice.
<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.
Connecteurs 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".
LinuxUniversal Windows 10 App La source peut être une base de données HFSQL Classic ou HFSQL Client/Serveur.
<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.
<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.
<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.
Connecteurs Natifs (Accès Natifs) MySQL et MariaDB : Avec l'Accès Natif MariaDB, le nom de la database est obligatoire.
<Type de la base> : Chaîne de caractères optionnelle
Type de la base accédée. Les types de bases installées sur le poste en cours peuvent être connus grâce à la fonction SQLListeSource. Pour plus de détails, consultez les remarques.
<Provider OLE DB> : Chaîne de caractères ou Constante optionnelle
Nom du provider OLE DB utilisé. Voici les plus courants :
"Microsoft.Jet.OLEDB.3.51"Access
"Microsoft.Jet.OLEDB.4.0"Access
"MSDAORA"Oracle (Microsoft)
"MSDASQL"ODBC
"OraOLEDB.Oracle"Oracle
"SQLOLEDB"SQLServer
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
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.
<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 accès natifs sont présentés dans la page Informations optionnelles de connexion.
Remarques
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5OLE DBODBCConnecteurs Natifs (Accès Natifs)

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

Type de la baseSourceNom 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
HFSQLCSAccès HFSQL Client/Serveur
Nom ou adresse du serveur HFSQL C/S
Nom de la base de données
HYPER FILE
HFSQL
Nom de la base"" (chaîne vide)
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
MySQLConnecteur Natif MySQL (module optionnel)
Nom de la base
DataBase
MariaDBConnecteur Natif MariaDB (module optionnel)
Nom de la base
DataBase
POSTGRESQLConnecteur Natif PostgreSQL (module optionnel)
Nom de la base
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)
Base disponible via le navigateur
(uniquement disponible sous Chrome et Safari)
"" (chaîne vide)
"" (chaîne vide)
LinuxUniversal Windows 10 App Les types de base supportés sont : HYPER FILE.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5OLE DBODBCConnecteurs Natifs (Accès Natifs)

É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).
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppiPhone/iPadCode Utilisateur (MCU)AjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Connexion à une analyse HFSQL

Dans la majorité des plateformes, l'accès aux données HFSQL (Classic ou Client/Serveur) est disponible en natif. Il n'est pas nécessaire d'accéder aux bases par l'intermédiaire d'un proxy Webservice (SOAP). Ainsi, pour accéder à une base HFSQL Client/Serveur, il suffit d'utiliser la fonction HOuvreConnexion.
Pour se connecter à une analyse HFSQL par l'intermédiaire d'un proxy Webservice, utilisez la syntaxe suivante :
SQLConnecteWS(<Serveur du Webservice>, ...
<"<Lecteur>:<Chemin complet WDD analyse>", "", "<Mot De Passe Analyse>")
Par exemple :
// URL du serveur qui possède le Webservice
sURLServeurWebservice est une chaîne = "http://URLServeur"
// WDD de l'analyse sur le serveur.
// Le chemin est donné par rapport au répertoire des données du Webservice.
sCheminWDDAnalyseSurServeur est une chaîne = ".\" + ProjetInfo(piAnalyse) + ".wdd"
// Mot de passe
sMotDePasseWDD est une chaîne
// Connexion à la base HFSQL en fonction de ce qui est indiqué dans l'analyse
SI PAS SQLConnecteWS(sURLServeurWebservice, sCheminWDDAnalyseSurServeur, "", ...
sMotDePasseWDD) ALORS
// Echec de la connexion
SQLInfoGene()
Erreur(SQL.MesErreur)
RETOUR
FIN
 
// Connexion OK
// Suite du code avec SQLExec, etc.
Remarques :
  • Après une connexion à une analyse HFSQL, la variable SQL.Connexion retourne -1.
  • Les fichiers de données HFSQL seront recherchés sur le serveur dans le répertoire courant des programmes du Webservice ou dans le répertoire décrit dans l'analyse. Il n'est pas possible de spécifier un chemin par programmation.
  • 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 SQLConnecteWS.
  • Pour manipuler des fichiers de données HFSQL Client/Serveur, la connexion décrite dans l'analyse doit contenir toutes les informations nécessaires (nom ou adresse IP du serveur, port, base de données, ...) : ces informations ne peuvent pas être spécifiées par programmation.
WINDEVWEBDEV - Code ServeurEtats et RequêtesiPhone/iPadCode Utilisateur (MCU)AjaxOLE DBODBC

ODBC et OLE DB : Imbrication de connexions

Pour ODBC et OLE DB, plusieurs appels à la fonction SQLConnecteWS peuvent être imbriqués (attention : cela n'est pas possible avec les bases 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êtesiPhone/iPadCode 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). La source de données doit être une source de données "système".
  2. Utilisation de la fonction SQLConnecteWS 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> = SQLConnecteWS(<Serveur du Webservice>, <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 SQLConnecteWS. La variable SQL.HandleODBC vaut -1 pour les autres connexions.
WINDEVWEBDEV - Code ServeuriPhone/iPadCode Utilisateur (MCU)AjaxConnecteurs 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, il est nécessaire de passer en paramètre à la fonction SQLConnecteWS :
  • le type de la base utilisée, MySQL, MariaDB ou POSTGRESQL.
  • le nom de la base : 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
NumConnexion = SQLConnecteWS("http://URLServeur", "BaseMySQL", ...
"", "", "", "MySQL")
// ou
// NumConnexion = SQLConnecte("BaseMySQL", "Utilisateur", ...
// "MotDePasse", "MaDataBase", "MySQL")
 
// Connexion à une base de données MySQL distante
NumConnexion = SQLConnecteWS("http://URLServeur", "192.168.1.51", ...
"Utilisateur", "MotDePasse", "test", "MySQL")
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxConnecteurs Natifs (Accès Natifs)

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

La syntaxe pour se connecter à une base ISAM est la suivante :
SQLConnecteWS(<Serveur du Webservice>, <Chemin de la base>, ...
<Utilisateur>, <Mot de passe>, <Type Base>, "ACCESS")
<Chemin de la base>Chemin ou nom complet (selon les cas) de la base 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 Base>Type de la base sur laquelle on se connecte (le driver ISAM correspondant doit donc avoir été installé).
Type de base de données<Type Base><Chemin de la base>
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 driver ACCESS.
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 :
SQLConnecteWS(<Serveur du Webservice>, <MaBase>, 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.
Composante : wd300hf.dll
Version minimum requise
  • Version 19
Documentation également disponible pour…
Commentaires
Pour les Android 9 et serveurs en HTTP
Les versions 9 d'Android se connectent seulement aux serveurs HTTPS. Pour forcer les Android 9 à se connecter aux serveurs HTTP, il faut éditer le manifeste, avant de générer l'application.
https://faq.pcsoft.fr/19034-consommation_webservice_http_sous_android-read.awp?AWPID899DA682=3D15D68A9A8E02A862C690A7D53F50494A992BB6
Yvan H
01 oct. 2019

Dernière modification : 25/05/2022

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