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

Des exemples d'utilisation des fonctions du WLangage

Rien de tel qu'un exemple pour comprendre une fonction de WLangage. Dans cette section, vous trouverez des exemples simples.

Des exemples évolués, où la fonction est utilisée en contexte, sont également disponible sur ce site.

Aller à la page des exemples évolués

SQLAssocie (en anglais SQLAssociate)

ResExec est un booléen
ResExec = SQLExec("SELECT NOMCLI,ADR1,ADR2,VILLE,CP FROM FACT", "REQ2")
SI ResExec = Vrai  ALORS
   SQLAssocie("REQ2", NomCli, Adr[1], Adr[2], Ville, CodePostal)
   SQLPremier("REQ2")
SINON
   // Traite erreur
FIN
SQLFerme("REQ2")


Début de la page

SQLAvance (en anglais SQLFetch)

i est un entier = 0
SQLExec("SELECT NOM, PRENOM, POSTE, PHOTO FROM CLIENT", "REQ1")
// Récupérer la requête ligne à ligne
TANTQUE SQLFetch ("REQ1") = 0
   // Il y a encore une ligne à lire
   i++
   // Récupérer les données
   NOM[i] = SQLLitCol("REQ1", 1)
   PRENOM[i] = SQLLitCol("REQ1", 2)
   POSTE[i] = SQLLitCol("REQ1", 3)
   {"IMAGE"+i} = SQLLitMémo("REQ1", 4)
FIN
SQLFerme("REQ1")


Début de la page

SQLBloque (en anglais SQLLock)

Req est une chaîne
// Début de transaction pour bloquer
SQLTransaction( SQLDébut )
// Bloque toute la table
SQLBloque ("CLIENT", "Table")
// Exécute la requête
Req = "UPDATE CLIENT SET NOMCLIENT = 'DUPOND' WHERE REFCLIENT = 1043"
SQLExec(Req, "REQ1")
// Débloquer le fichier
SQLTransaction( SQLFin )


Début de la page

SQLBloque (en anglais SQLLock)

ReqBloque, ReqUpdate sont des chaînes
// Début de transaction pour bloquer
SQLTransaction( SQLDébut )
// Définition de Requête
ReqBloque est une chaîne = "SELECT * FROM CLIENT WHERE REFCLIENT = 1043"
// Bloquer le résultat de la requête SELECT
SQLBloque (ReqBloque)
// Définition d'une requête de mise à jour
ReqUpdate est une chaîne
ReqUpdate = "UPDATE CLIENT SET NOMCLIENT = 'DUPOND' WHERE REFCLIENT = 1043"
// Exécution d'une requête de mise à jour
SQLExec(ReqUpdate, "REQ1")
// Débloquer les enregistrements
SQLTransaction( SQLFin )


Début de la page

SQLChangeConnexion (en anglais SQLChangeConnection)

// Les clients sont sur une base ORACLE
Conn1 est un entier = SQLConnecte("ORACLE", "", "")
// La comptabilité est sur une base SQLSERVER
Conn2 est un entier = SQLConnecte("SQLSERVER", "", "")
...
// Accéder aux clients
SQLChangeConnexion (Conn1)
...
// Accéder à la comptabilité
SQLChangeConnexion (Conn2)
...
// Fermeture de la connexion en cours
SQLDéconnecte
()
// Fermeture de la connexion en cours
SQLDéconnecte()


Début de la page

SQLCol (en anglais SQLCol)

ResExec = SQLExec("SELECT NOMCLI FROM FACT", "REQ1")
SI ResExec ALORS
   SQLPremier("REQ1")
   // Transfert du nom dans LISTENOM
   TANTQUE PAS SQL.EnDehors
      ListeAjoute
("LISTENOM", SQLCol ("REQ1", 1))
      SQLSuivant("REQ1")
   FIN
SINON
   // TraiteErreur
FIN
SQLFerme("REQ1")


Début de la page

SQLColonne (en anglais SQLColumn)

// Connexion à une base de données
Numéro_Connexion est un entier = SQLConnecte(NomSource, "", "", "", "ODBC")
i est un entier
// ListeTab est une liste contenant la liste des tables
i = ListeTab
SI i <> -1 ALORS
    ListeAjoute(Liste1, SQLColonne (Numéro_Connexion,ListeTab[i]))
FIN


Début de la page

SQLConnecte (en anglais SQLConnect)

// Exemple de connexion via 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
    ...
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()


Début de la page

SQLConnecte (en anglais SQLConnect)

// Connexion à une base MySQL sur la machine apollon
// avec le login "superv" à la base client test
NumConnexion est un entier
NumConnexion = SQLConnecte ("apollon","superv","","test")


Début de la page

SQLConnecte (en anglais SQLConnect)

// Connexion à une base 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 Hyper File :
SQLConnecte("MonAnalyse.WDD","","monpwd","","Hyper File")


Début de la page

SQLDeconnecte (en anglais SQLDisconnect)

// Exemple attaché à l'analyse GESCOM
// TableReq est une table mémoire
ResConnect est un entier
ResExec est un booléen
MaBase est une chaîne = "C:\GESCOM.WDD"
ResConnect = SQLConnecte ( MaBase , "" , "" )
SI ResConnect <> 0 ALORS
    ResExec = SQLExec ( "SELECT NOM, VILLE FROM POP" , "REQ1" )
    SI ResExec ALORS
       // Récupérer les données dans la table
       SQLTable ( "REQ1" , "TableReq" )
    SINON
       // Erreur d'exécution de la requête
       // Récupérer les informations relatives à la requête exécutée
       SQLInfoGene ( "REQ1" )
       Erreur ( SQL.MesErreur )
    FIN
    SQLFerme ( "REQ1" ) // Libérer la requête dans tous les cas
SINON
     // Erreur de connexion
     Erreur ( "La connexion à la base" + MaBase + "a échoué" )
FIN
SQLDéconnecte ()    // Libérer la connexion dans tous les cas


Début de la page

SQLDernier (en anglais SQLLast)

ResExec est un entier
// Exécution d'une requête
ResExec = SQLExec("SELECT NOMCLI FROM FACT", "REQ1")
SI ResExec = Vrai ALORS
   // Transfert du nom dans LISTENOM
   SQLDernier ("REQ1")
   TANTQUE PAS SQL.EnDehors
      
// Ajout du résultat dans une liste
      ListeAjoute("LISTENOM", SQLCol("REQ1", 1))
      SQLPrécédent("REQ1")
   FIN
SINON
   // Traite erreur
FIN
SQLFerme("REQ1")


Début de la page

SQLExec (en anglais SQLExec)

// Exécuter la requête et récupérer le résultat ligne à ligne
i est un entier = 0
SQLExec("SELECT NOM, PRENOM, POSTE, PHOTO FROM CLIENT", "REQ1")
TANTQUE SQLAvance("REQ1") = 0 // Il y a encore une ligne à lire
   i++
   // Récupérer les données
   NOM[i] = SQLLitCol("REQ1", 1)
   PRENOM[i] = SQLLitCol("REQ1", 2)
   POSTE[i] = SQLLitCol("REQ1", 3)
   {"IMAGE"+i} = SQLLitMémo("REQ1", 4)
FIN
SQLFerme("REQ1")


Début de la page

SQLExecWDR (en anglais SQLExecWDR)

// Exécuter la requête et récupérer le résultat ligne à ligne
i est un entier = 0
SQLExecWDR ("RequêteClient84")
TANTQUE SQLFetch("RequêteClient84") = 0 // Il y a encore une ligne à lire
    i++
    // Récupérer les données
    NOM[i] = SQLLitCol("RequêteClient84", 1)
    PRENOM[i] = SQLLitCol("RequêteClient84", 2)
    POSTE[i] = SQLLitCol("RequêteClient84", 3)
    {"IMAGE"+i} = SQLLitMémo("RequêteClient84", 4)
FIN
SQLFerme("RequêteClient84")


Début de la page

SQLFerme (en anglais SQLClose)

// Exécution de la requête et récupération des informations
ResSQL = SQLExec("SELECT* FROM FACT", "REQ1")
SI PAS ResSQL ALORS
    SQLInfoGene("REQ1")
    Info("Erreur SQL : " + SQL.MesErreur)
SINON
    SQLTable("REQ1", "Table1")
FIN
SQLFerme("REQ1")


Début de la page

SQLFormatColonne (en anglais SQLColumnFormat)

Ch est une chaîne
Ch = SQLFormatColonne ()
// La chaîne Ch contient par exemple :
// "CHAR" + TAB + "9" + RC + "VARCHAR" + TAB + "20" + RC


Début de la page

SQLInfoGene (en anglais SQLInfo)

ResSQL = SQLExec("SELECT * FROM FACT", "REQ1")
SI PAS ResSQL ALORS
    SQLInfoGene ("REQ1")
    Info("Erreur SQL : " + SQL.MesErreur)
SINON
    SQLTable("REQ1", "Table1")
FIN
SQLFerme("REQ1")


Début de la page

SQLListeSource (en anglais SQLListSource)

// Afficher dans une liste les sources de données accessibles
ListeAjoute("ListeData", SQLListeSource ())

// Afficher dans une liste les bases de données accessibles
ListeAjoute("ListeData", SQLListeSource ("BASE"))


Début de la page

SQLListeTable (en anglais SQLListTable)

// Liste non détaillée des tables
Ch
est une chaîne = SQLListeTable ( Faux )
Ch = SansEspace(Ch)
// Ajout dans un champ Liste
ListeAjoute(LISTE, Ch)


Début de la page

SQLListeTable (en anglais SQLListTable)

Ch est une chaîne = SQLListeTable ()
Ch = SansEspace ( Ch )
// Ajout dans un champ Table
TableAjoute ( TABSOURCE , Ch )


Début de la page

SQLListeTable (en anglais SQLListTable)

Ch est une chaîne = SQLListeTable ()
Ch = SansEspace ( Ch )
// Extraire le nom de la table
Ch = ExtraitChaîne ( Ch , 1 , RC)
Nom = ExtraitChaîne ( Ch , 1 )
// Extraire le qualifiant
Qual = ExtraitChaîne ( Ch , 2 )
// Extraire le propriétaire
Prop = ExtraitChaîne ( Ch , 3 )
// Extraire le type de la table
Type = ExtraitChaîne ( Ch , 4 )


Début de la page

SQLLitCol (en anglais SQLGetCol)

i est un entier = 0
SQLExec("SELECT NOM, PRENOM, POSTE, PHOTO FROM CLIENT", "REQ1")
// Récupérer la requête ligne à ligne
TANTQUE SQLAvance("REQ1") = 0 // Il y a encore une ligne à lire
   i++
   // Récupérer les données
   NOM[i] = SQLLitCol ("REQ1", 1)
   PRENOM[i] = SQLLitCol ("REQ1", 2)
   POSTE[i] = SQLLitCol ("REQ1", 3)
FIN
SQLFerme("REQ1")


Début de la page

SQLLitMemo (en anglais SQLGetMemo)

SQLExec("SELECT NOM, PRENOM, POSTE, PHOTO FROM CLIENT", "REQ1")
SQLAvance("REQ1") // Ou SQLFetch("REQ1")
// Récupérer les données
NOM = SQLLitCol("REQ1", 1)
PRENOM = SQLLitCol("REQ1", 2)
POSTE = SQLLitCol("REQ1", 3)
// Lire le mémo binaire et le stocker dans un fichier
// photo du produit
HExtraitMemo( SQLLitMémo ("REQ1", 4),"Produit.BMP")
SQLFerme("REQ1")
// Récupération d'un mémo binaire
SQLExec("SELECT NOM, MORCEAU FROM MUSIQUE", "REQ1")
Son( SQLLitMémo ("REQ1", 2)) // Joue le mémo binaire


Début de la page

SQLLitMemoTexte (en anglais SQLGetTextMemo)

SQLExec("SELECT NOM, PRENOM, POSTE, NOTES FROM CLIENT", "REQ1")
SQLAvance("REQ1") // Ou SQLFetch("REQ1")
// Récupérer les données
NOM = SQLLitCol("REQ1", 1)
PRENOM = SQLLitCol("REQ1", 2)
POSTE = SQLLitCol("REQ1", 3)
// Lire le mémo texte
NOTE = SQLLitMémoTexte ("REQ1", 4)
SQLFerme("REQ1")


Début de la page

SQLModifie (en anglais SQLModify)

SQLModifie ("REQSELECT", SQL.EnCours, NumClient + TAB + "34000" + TAB + Ville)


Début de la page

SQLPositionne (en anglais SQLSeek)

// Modification de l'ascenseur
// Positionnement direct selon la valeur de l'ascenseur
SQLPositionne ("REQ", ASCENS1)


Début de la page

SQLPrecedent (en anglais SQLPrevious)

ResExec = SQLExec("SELECT NOMCLI FROM FACT", "REQ1")
SI ResExec ALORS
    // Transfert du nom dans LISTENOM
    SQLDernier("REQ1")
    TANTQUE PAS SQL.EnDehors
       ListeAjoute("LISTENOM", SQLCol("REQ1", 1))
       SQLPrécédent ("REQ1")
    FIN
SINON
   // Traite l'erreur
FIN
SQLFerme("REQ1")


Début de la page

SQLPremier (en anglais SQLFirst)

// Initialisation des paramètres de l'ascenseur en fin de requête
ResSQL = SQLExec("SELECT NOMCLI, PRENOM, ADR1, ADR2, VILLE, CP" + ...
                 "FROM CLIENT", "REQ1")
SI ResSQL ALORS
   SQLPremier("REQ1") // Affiche la première ligne
   ASCENS1..Maxi = SQL.NbLig // Initialise la borne maximale 
                             // de l'ascenseur
   ASCENS1 = 1 // Place l'ascenseur au début
SINON
   // Traite l'erreur
FIN
SQLFerme("REQ1")


Début de la page

SQLReqExiste (en anglais SQLReqExists)

// Teste l'existence d'une requête
SI SQLReqExiste ("REQ1") = 1 ALORS
   Info("La requête existe")
FIN


Début de la page

SQLSuivant (en anglais SQLNext)

ResSQL = SQLExec("SELECT NOMCLI FROM FACT", "REQ1")
SI ResSQL ALORS
   SQLPremier("REQ1")
   TANTQUE PAS SQL.EnDehors
      ListeAjoute("LISTENOM", SQLCol("REQ1", 1))
      SQLSuivant ("REQ1")
   FIN
SINON
   // Erreur SQLEXEC
FIN
SQLFerme("REQ1")


Début de la page

SQLTable (en anglais SQLTable)

// Transfert dans table : récupération sans fetch
ResSQL = SQLExec("SELECT NOMCLI,PRENOMCLI FROM FACT", "REQ1")
SI ResSQL ALORS
    SQLTable ("REQ1", "TABREQ", "Nom du client" + TAB + "Prénom", "30 20")
    // Calcule le nombre d'enreg. résultat
    Nbenr est un entier = TableOccurrence(TabReq)
SINON
    // Erreur SQL
FIN
SQLFerme("REQ1")


Début de la page

SQLTable (en anglais SQLTable)

// Transfert dans table : récupération uniquement des 25 premiers
ResSQL = SQLExec("SELECT NOMCLI,PRENOMCLI,VILLE FROM FACT", "REQ1")
SI ResSQL ALORS
  // Avoir uniquement les 25 premières lignes
  SQLTable ("REQ1", "TABREQ", 25)
SINON
   // Erreur SQL
FIN
SQLFerme("REQ1")


Début de la page

SQLTable (en anglais SQLTable)

// Transfert dans table : récupération par Fetch
ResSQL = SQLExec("SELECT NOMCLI,PRENOMCLI,VILLE FROM FACT", "REQ1")
SI ResSQL ALORS
   // Récupération par groupe de 28 lignes
   TANTQUE SQLTable (28,"REQ1","MATABLE","ColTitre","90")
      // Traitement 
SINON
   // Erreur SQL
FIN
SQLFerme("REQ1")


Début de la page

SQLTransaction (en anglais SQLTransaction)

NumConnexion est un entier = SQLConnecte("MaBase", "User", "MotDePasse",...
                             "","OLEDB","MonProvider")
SI NumConnexion = 0 ALORS
   SQLInfoGene()
   Erreur("Erreur d'ouverture de la connexion : " + SQL.MesErreur)
SINON
   // Mise en transaction de la connexion
    SQLTransaction ( SQLDébut )
   // Modification de la valeur de toutes les rubriques MonFichier. MaRubrique
   SI SQLExec("UPDATE MonFichier SET MaRubrique = 'nouvelle valeur'",...
                "RequeteModif") = 0 ALORS
      SQLInfoGene("RequeteModif")
      Erreur("Erreur d'execution de la requête : " + SQL.MesErreur)
      SQLTransaction ( sqlFin )
  FIN
  // Annulation de la transaction
  SQLTransaction ( sqlAnnule )
  // le contenu du fichier MonFichier n'a pas changé.
FIN


Début de la page