Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2011, 13h41   #1
Membre Expert
 
Avatar de mogwai162
 
Patrick Catella
Inscription : janvier 2006
Messages : 1 333
Détails du profil
Informations personnelles :
Nom : Patrick Catella
Âge : 49
Localisation : France, Vosges (Lorraine)

Informations forums :
Inscription : janvier 2006
Messages : 1 333
Points : 1 564
Points : 1 564
Envoyer un message via MSN à mogwai162
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 en poste près de Reims dans une entreprise de vente sur internet.
mogwai162 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 01h27   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Une bonne réponse de consultant : ça dépend de votre besoin !
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 07h58   #3
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 638
Points : 2 630
Points : 2 630
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 ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 09h34   #4
Membre Expert
 
Avatar de mogwai162
 
Patrick Catella
Inscription : janvier 2006
Messages : 1 333
Détails du profil
Informations personnelles :
Nom : Patrick Catella
Âge : 49
Localisation : France, Vosges (Lorraine)

Informations forums :
Inscription : janvier 2006
Messages : 1 333
Points : 1 564
Points : 1 564
Envoyer un message via MSN à mogwai162
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 en poste près de Reims dans une entreprise de vente sur internet.
mogwai162 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 12h38   #5
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 3
Points : 3
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/
gestrad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 13h02   #6
Membre Expert
 
Avatar de mogwai162
 
Patrick Catella
Inscription : janvier 2006
Messages : 1 333
Détails du profil
Informations personnelles :
Nom : Patrick Catella
Âge : 49
Localisation : France, Vosges (Lorraine)

Informations forums :
Inscription : janvier 2006
Messages : 1 333
Points : 1 564
Points : 1 564
Envoyer un message via MSN à mogwai162
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 en poste près de Reims dans une entreprise de vente sur internet.
mogwai162 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 09h43   #7
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 950
Points : 17 769
Points : 17 769
Les curseurs servent essentiellement à alimenter les IHM.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 09h19   #8
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 096
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 096
Points : 1 704
Points : 1 704
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.
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 11h15   #9
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 950
Points : 17 769
Points : 17 769
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h54.


 
 
 
 
Partenaires

Hébergement Web