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.
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 ()
|