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.

 

SqlErreurLibelle

SqlErreurNumero

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