IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Utilisation de FETCH


Sujet :

Langage SQL

  1. #1
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut Utilisation de FETCH
    Bonjour à tous !

    Mon premier post dans le forum SQL.

    Voici ma question. Si j'ai bien compris lors d'un SELECT, on a le choix entre mettre le résultat de la requête dans un tableau en mémoire et ensuite traiter le tableau ou alors d'utiliser un FETCH (curseur)

    Or, il semblerait que l'utilisation du FETCH soit très déconseillée voire même proscrite par certains.

    Est ce que je me trompe ou pouvez vous me dire pourquoi c'est déconseillé ?

    Merci
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Une bonne réponse de consultant : ça dépend de votre besoin !

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Y a un truc que je ne comprend pas : comment mettre les résultats dans un tableau en mémoire sans que votre programme/qgbd ne fasse un FETCH ?

  4. #4
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Ben... moi non plus je comprend pas tout.

    Il est clair que j'ai un langage qui le fait auomatiquement mais... je pense qu'en fait il fait tout de même un fetch pour lire le résultat même si je ne l'ecris pas.

    De plus j'ai du m'égarer...

    Ce que j'ai vu sur les curseurs et les fetchs ne concerneraient que ceux gérées à l'intérieur même d'une requête....

    J'avoue être un peu perdu. Un peu beaucoup...
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Je ne voudrais pas rajouter de confusion dans ton raisonnement mais il me semble que le "fetch" soit obligatoire : c'est le retour du résultat de ta requête (to fetch = rapporter).

    Le terme "fetch" est utilisez comme nom de fonction dans différents langage avec des résultats variant (mais ayant souvent le sens de rapporter/associer le résultat d'une requête).

    Ne confondrais tu pas FETCH et CURSEUR.

    Si on prend le langage T-SQL , les curseurs permettent de parcourir un jeu de résultats de façon séquentielle.
    Et en effet dans un curseur on fetch une ligne de résultat dans des variables...

    cf : http://sqlpro.developpez.com/cours/s...r_avoidCursor/

  6. #6
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Citation Envoyé par gestrad Voir le message
    ...Ne confondrais tu pas FETCH et CURSEUR ?...
    euh... si tu as raison

    De plus j'ai regardé le lien que tu m'as donné et j'ai mieux compris les tenants et les aboutissants de la problématique.

    En résumé, les curseuirs peuvent être bien utiles mais sont à utiliser que si l'on ne peut pas faire autrement.

    Merci à tous
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Les curseurs servent essentiellement à alimenter les IHM.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Sur le Mainframe, avec DB2 for z/OS par exemple, les curseurs, et donc les instructions FETCH, sont très largement utilisés, non seulement pour alimenter les IHM, mais aussi pour les traitements batch.

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Quand on sait pas faire des requêtes, ça aide. Mais le langage SQL étant Truring complet, il n'y a aucun besoin d'utiliser des curseurs pour ce faire...

    Ce sont souvent des développement entrepris du temps ou la récursivité n'était pas supporté et que l'on a laissé tel quel...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser fetch et ses amis dans un Controller
    Par tomtom94500 dans le forum Zend Framework
    Réponses: 39
    Dernier message: 11/06/2010, 13h55
  2. comment utiliser fetch.lazy ?
    Par chakala dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 10/07/2007, 14h05
  3. comment utiliser fetch?
    Par mbouzouita dans le forum Wildfly/JBoss
    Réponses: 8
    Dernier message: 15/06/2007, 17h04
  4. utilisation du fetch
    Par naouna8 dans le forum Hibernate
    Réponses: 2
    Dernier message: 20/07/2006, 17h06
  5. utilisation de fetch avec select
    Par arwen dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/06/2003, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo