SQL "FETCH"
Rôle : |
Avance le curseur dans la requête. |
Cette commande avance le curseur dans la requête précédemment spécifiée par une commande SELECT. Elle met à jour les données L4G désignées par le SELECT en tenant compte des assignations. Cette commande correspond au "fetch" standard du SQL. Le FETCH ne lit toujours qu'une seule ligne à la fois. Par défaut, la lecture s'effectue dans le sens progressif. Cette commande peut être complétée par une option de direction (NEXT, PREV, FIRST et LAST) qui permettent de modifier le sens de la lecture.
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, cette commande est relative à un curseur.
En fin de sélection, le FETCH provoque une erreur: "Plus de données". Le curseur n'est cependant pas fermé.
Les variables système renseignent sur l'échec ou le succès de cette 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é |
"Pas de curseur valide" |
"OXY004" |
Le nom de curseur spécifié n'a pas pu être retrouvé |
"Plus de données" |
"100" |
Le curseur est arrivé en fin de sélection |
Exemple :
Il est possible d'obtenir les données ACCESS triées. Dans cet exemple, on va exploiter les possibilités d'Oxygene++, à savoir les différents niveaux de tris qui gèrent automatiquement les ruptures. On pourra également utiliser la commande ORDER BY de SQL: dans ce cas, on ne bénéficiera pas des événements liés aux ruptures.
Domaine :
ESSAI
Objet EDITION : EDART "Edition des articles"
Declaration
BASE:OD
TABLE:ART
TRI 1:COFAM
FinDeclaration
Methode DEBUT_TRI
Supprimer ART
SQL "CONNECT
Server=""MS Access 2.0 Databases"",
Qualifier=c:\access\gart.mdb"
AppliquerMethode Sql_Error
SQL "SELECT * FROM
ARTICLE"
AppliquerMethode Sql_Error
Tantque SqlErreurNumero =
""
//Commande SQL pour
rapatrier dans la table OXYGENE les //enregistrements
sélectionnés dans la base Access
Sql
"FETCH"
Si SqlErreurNumero =
"" Alors
Ecrire ART
Finsi
FinTantQue
FinMethode
Methode Sql_Error
//Vérification de l'ordre
qui vient d'être passé
Si SqlErreurNumero <>
"" Alors
BoiteMessage "Erreur
sur Connect: "+SqlErreurLibelle
Sortir
Finsi
FinMethode
FinObjet