pictogram Auteur: Patrick Biker
Date: 18 mars 2006
Maj : 21 Mars 2015

Exemples évolués

Chaque exemple montre une utilisation pratique de la fonction du WLangage.

Quand plusieurs syntaxes sont possibles, chacune est illustrée indépendamment.

Revenir à la page des exemples évolués


Cet exemple permet de manipuler une base Hyper File via une connexion SQL.



NumConnexion est un entier
NomCompletWdd est une chaîne
MotDePasseWdd est une chaîne
VariableDeTest est une chaîne
// Chemin de l'analyse
NomCompletWdd = fRepEncours() + "\MonAnalyse.WD9\MonAnalyse.WDD"
// Mot de passe défini dans l'analyse pour le WDD (si un mot de passe est défini)
MotDePasseWdd = "PASSWDD"
// Connexion à la base de données Hyper File
NumConnexion = SQLConnecte (NomCompletWdd, "", MotDePasseWdd, "Hyper File")
SI NumConnexion <> 0 ALORS
   // La connexion s'est bien passée
   // Utilisation de la connexion pour exécuter des requêtes SQL
   VariableDeTest = "DUPOND"
   SI SQLExec("SELECT * FROM CLIENT WHERE NOM='" + VariableDeTest + "'", ...
                "RECHCLIENTPARNOM") ALORS
       // Traitement de la requête
   SINON
        // Échec de la requête : affichage d'un message explicatif
        SQLInfoGene("RECHCLIENTPARNOM")
        Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
   FIN
SINON
    // La connexion a échoué : affichage d'un message explicatif
    Erreur(HErreurInfo())
FIN
// Obligatoire, que la connexion soit OK ou non
SQLDéconnecte()


Cet exemple permet de manipuler une base ACCESS (ou ORACLE) via une connexion SQL.



NumConnexion est un entier
NomSource est une chaîne
NomUtilisateur est une chaîne = ""
PasseUtilisateur est une chaîne = ""
VariableDeTest est une chaîne
TypeBase est une chaîne

// Connexion à une source de données spécifique via l'accès natif MS ACCESS
NomSource = "C:\cdm\test.mdb"
TypeBase = "Access"
NumConnexion = SQLConnecte (NomSource, NomUtilisateur, PasseUtilisateur, "", TypeBase)
// Ou connexion à une source données via l'accès natif ORACLE
// NomSource = "NOMALIAS" (nom de l'alias défini avec SQLNet)
// TypeBase = "ORACLE"
// NumConnexion = SQLConnecte(NomSource, NomUtilisateur, PasseUtilisateur, "", TypeBase)
SI NumConnexion <> 0 ALORS
    // La connexion s'est bien passée
    // Utilisation de la connexion pour exécuter des requêtes SQL
    VariableDeTest = "DUPOND"
    SI SQLExec("SELECT * FROM CLIENT WHERE NOM='" + ...
              VariableDeTest + "'", "RECHCLIENTPARNOM") ALORS
        // Traitement de la requête
    SINON
         // Échec de la requête : affichage d'un message explicatif
         SQLInfoGene("RECHCLIENTPARNOM")
         Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
    FIN
SINON
    // La connexion a échoué : affichage d'un message explicatif
    // Recherche des types de sources dans la liste des sources disponibles
    SI Position(RC + Majuscule(SQLListeSource("BASE")) + RC, ...
                RC + Majuscule(TypeBase) + RC) = 0 ALORS
        // Type de source non trouvé
        Erreur("L'accès natif" + TypeBase + "n'est pas correctement installé.", ...
               "Vérifiez la présence des DLL WinDev/WebDev correspondantes" + ...
               "(WDxxxACC.DLL pour Access, WDxxxORA.DLL pour Oracle," + ...
                "WDxxxSQS.DLL pour SQL Server)")
     SINON
         // Type de source trouvé dans la liste de type de source
         SQLInfoGene()
         // Instruction à supprimer pour l'accès natif Oracle
          Erreur("Le type de source de données" + TypeBase + ...
                 "a bien été trouvé mais la connexion a échoué.", ...
                 "Vérifiez le nom de la base (ou chaîne de connexion) " + ...
                 "et le mot de passe.", SQL.MesErreur)
     FIN
FIN
// Obligatoire, que la connexion soit OK ou non
SQLDéconnecte()


Cet exemple permet de manipuler une base ACCESS via une connexion ODBC.



NumConnexion est un entier
NomSource est une chaîne
VariableDeTest 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
   // Utilisation de la connexion pour exécuter des requêtes SQL
   VariableDeTest = "DUPOND"
   SI SQLExec("SELECT * FROM CLIENT WHERE NOM='" + ...
      VariableDeTest + "'", "RECHCLIENTPARNOM") ALORS
       // Traitement de la requête
   SINON
       // Échec de la requête : affichage d'un message explicatif
       SQLInfoGene("RECHCLIENTPARNOM")
       Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
   FIN
SINON
    // La connexion a échoué : affichage d'un message explicatif
    // Recherche des types de sources dans la liste des sources disponibles
    SI Position(RC + Majuscule(SQLListeSource("BASE")) + RC, ...
                RC + Majuscule(TypeBase) + RC)= 0 ALORS
        // Type de source non trouvé
        Erreur("L'accès natif" + TypeBase + "n'est pas correctement installé.", ...
               "Vérifiez la présence des DLL WinDev/WebDev correspondantes" + ...
                "(WDxxxACC.DLL pour Access, WDxxxORA.DLL pour Oracle," + ...
                "WDxxxSQS.DLL pour SQL Server)")
    SINON
        // Type de source trouvé dans la liste des types de sources
         SQLInfoGene()
        // Instruction à supprimer pour l'accès natif Oracle
         Erreur ( "Le type de source de données" + TypeBase + ...
                 "a bien été trouvé mais la connexion a échoué." , ...
                 "Vérifiez le nom de la base (ou chaîne de connexion) " + ...
                 "et le mot de passe." , SQL.MesErreur )
     FIN
FIN
// Obligatoire, que la connexion soit OK ou non
SQLDéconnecte
()




NomSource est une chaîne = "jdbc:mysql://apollon/test"
NumConnexion est un entier = SQLConnecte ( NomSource , "MH" , "FORMH" , ...
                             "test" , "" , "com.mysql.jdbc.Driver"
)
SI NumConnexion = 0 ALORS
     // 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 ) 
     RETOUR
FIN

// Exécuter la requête et récupérer le résultat ligne à ligne
SI PAS SQLExec ( "SELECT NomClient, Adresse, Telephone FROM CLIENT " , "REQ1" ) ALORS
    SQLInfoGene ( "REQ1" )
    Erreur ( "Echec de la requête " + RC + "Code erreur : " + SQL.Erreur + RC + SQL.MesErreur )
SINON
    i est un entier = 0
    TANTQUE SQLFetch("REQ1") = 0 // Il y a encore une ligne à lire 
       i ++ 
      
// Récupérer les données 
       sValeur est une chaîne = SQLLitCol("REQ1", 1)
SQLInfoGene ("REQ1")
SI SQL.MesErreur <>"" ALORS
Trace("Erreur : " + SQL.MesErreur)
SINON
Trace(sValeur)
FIN
 
sValeur = SQLLitCol ( "REQ1" , 2 )
SQLInfoGene ("REQ1")
SI SQL.MesErreur <>"" ALORS
Trace("Erreur : " + SQL.MesErreur)
SINON
Trace(sValeur)
FIN
 
sValeur = SQLLitCol ( "REQ1" , 3 )
SQLInfoGene ("REQ1")
SI SQL.MesErreur <>"" ALORS
Trace("Erreur : " + SQL.MesErreur)
SINON
Trace(sValeur)
FIN
FIN
SQLFerme ( "REQ1" )
FIN
 
SQLDeconnecte ()