|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() |
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. |
|
|
00
|
|
|
#2 |
![]() ![]() |
Une bonne réponse de consultant : ça dépend de votre besoin !
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
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 ?
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
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. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 10 ![]() |
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/ |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() |
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. |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
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 * * * * * |
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 096 ![]() |
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.
|
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
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 * * * * * |
|
00
|
Copyright © 2000-2012 - www.developpez.com