SQL "SELECT ..."
Rôle : |
|
Cette commande n'est pas à proprement parler une fonctionnalité supplémentaire. Elle est même un des éléments les plus marquants du SQL. Par contre, sa syntaxe a été légèrement étendue afin de supporter des assignations relatives à un curseur (ou ligne).
Dans la commande SELECT, lorsqu'on renseigne une "select-list" en nommant des champs de la base, on a la possibilité de spécifier une assignation par l'emploi juxtaposé d'un nom de variable L4G inclus entre crochets. Ces éventuelles assignations sont supprimées de la chaîne avant de la communiquer au driver O.D.B.C.. L'intérêt de spécifier une assignation dans cette déclaration est de lui limiter sa portée à ce curseur dans cette commande. Ces assignations ne sont absolument pas obligatoires. Dans le cas où aucune assignation ne serait reconnue, le gestionnaire O.D.B.C. d'OXYGENE++se contenterait de renvoyer la requête telle qu'elle au driver.
Cette commande est relative à une connexion qui a pu être nommée par la variable système SqlConnexion. Cette connexion doit obligatoirement avoir été créée par une commande CONNECT et être valide. De même, la commande SELECT est relative à un curseur qui a pu être renseigné par la variable système SqlCurseur. Le curseur sera clos par l'emploi d'une commande de fin de sélection, ou par une prochaine commande SELECT avec le même nom de curseur.
Cette commande se contente d'envoyer la requête au driver O.D.B.C.. Elle n'avance pas le curseur. Les données L4G implicitement désignées par la commande ne sont pas affectées.
Les variables système renseignent sur l'échec ou le succès de la commande. D'autres erreurs peuvent être retournées par le driver.
Résultat |
||
"" |
"" |
Succès |
"Connexion non définie" |
"OXY001" |
Le nom de la connexion n'a pas pu être retrouvé |
Exemple :
SQL "SELECT NOM_COMMUN[NOM] FROM TABLE"
Le driver O.D.B.C. recevra SELECT NOM_COMMUN FROM TABLE et mémorisera une assignation entre NOM_COMMUN (dans la base de données) et NOM (dans leL4G).
Domaine : ESSAI
Objet CALCUL : VAL_DU_STOCK
Declaration
BASE:OD
TABLE:ART
VARIABLES :
Double VVAL_du_stock("Valorisation du stock")
Chaine VCOFAM ("Codes famille")
FinDeclaration
Methode JE_TESTE
SQL "CONNECT Server=""MS Access 2.0 Databases"", Qualifier=c:\access\gart.mdb"
//Vérification de la connexion
Si SqlErreurNumero<>"" Alors
BoiteMessage "Erreur sur Connect: "+SqlErreurLibelle
Sortir
FinSi
//Affectation de la variable VCOFAM
VCOFAM="EPI"
//Commande SQL pour sélectionner toutes les colonnes de la table
//ARTICLE dont le code famille est égal à VCOFAM
SQL "SELECT * FROM ARTICLE WHERE COFAM='"+VCOFAM+"'"
//Vérification de l'ordre SELECT
Si SqlErreurNumero<>"" Alors
BoiteMessage "Erreur sur select :"+SqlErreurLibelle
Sortir
FinSi
//Boucle pour calculer la valorisation du stock
Tantque SqlErreurNumero = ""
//Commande SQL pour rapatrier dans la table OXYGENE les
//enregistrements sélectionnés dans la base Access
Sql "FETCH"
Si SqlErreurNumero = "" Alors
VVAL_DU_STOCK=VVAL_DU_STOCK+(PRIX*QST)
Finsi
FinTantQue
//Affichage du calcul effectué
BoiteMessage "La valeur du stock de la famille"+VCOFAM+" est de :"+VVAL_DU_STOCK
Sortir
FinMethode
FinObjet