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

MS SQL Server Discussion :

Procédure stockée avec retour de curseur


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Points : 56
    Points
    56
    Par défaut Procédure stockée avec retour de curseur
    Salut,

    Je ne suis pas trop habitué à SQL server car au boulot non utilisons Oracle d'où ma question

    Est-il possible qu'une procédure stockée retourne un cursor (ou autre) ? La réponse est oui mais je ne parviens pas à la mettre en pratique.

    Je voudrais retourner l'ensemble des records d'une table avec l'ensemble des champs. Le query serait du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM T_MATABLE;
    Une autre méthode peut-être que le retour de cursor ?

    Je regarder les pages des différents auteurs de developpez.com mais je n'ai pas trouve mon bonheur, ils en parlents mais la mise ne pratique pose des problèmes ;-)

    Merci,

    C.

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Pour ça, le T-SQL est nettement plus simple et plus pratique que le PL-SQL.

    Il suffit de lancer votre select ! Pas besoin de vous pourrir la vie avec des curseurs !

    Ex:

    create proc MaProc (@a int)
    as
    BEGIN
    select * from MaTable
    where MaCle=@a
    END
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par fadace
    Pour ça, le T-SQL est nettement plus simple et plus pratique que le PL-SQL.
    Pour le moment, je ne trouve pas, que du contraire mais je peux changer d'avis ...

    Il suffit de lancer votre select ! Pas besoin de vous pourrir la vie avec des curseurs !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create proc MaProc (@a int)
    as
    BEGIN
    select * from MaTable
    where MaCle=@a
    END
    C'est pas du tout ce que je demande.

    Je voudrais une procédure qui retourne, pas d'argument IN mais juste un OUT, l'ensemble des records et l'ensemble des champs.

    Donc qui retourne le contenu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM T_MYTABLE
    Merci,

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    je vous donnais juste un exemple avec un paramètre en entrée...

    Pour vote exemple, alors simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create proc MaProc 
    as
    SELECT * FROM T_MYTABLE
    ... et si ça, c'est pas plus simple qu'un curseur en PL-SQL
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par fadace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create proc MaProc 
    as
    SELECT * FROM T_MYTABLE
    ... et si ça, c'est pas plus simple qu'un curseur en PL-SQL
    Mmmmm c'est toujours pas ce que je cherche.

    Cette procedure ne retourne rien. Il me faut un parametre en OUTPUT qui contient l'ensemble des records retournés par le query.

    Christian,

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    En fait je crois que le problème est un problème de vocabulaire et de définition des besoins.
    Que veut dire retourne?

    La procédure proposé par fadace renvoie bien les lignes de la tables en question. Cela est récupérable par un client. En vb on récupère le résultat dans un recordset.
    Sur l'analyseur de requète le résultat est affiché.
    Il me faut un parametre en OUTPUT qui contient l'ensemble des records retournés par le query.
    Pour quelle utilisation ultérieure en as-tu besoin ?
    Que veux tu en faire?
    As tu un client? En quel langage est-il écrit?

    A+
    Soazig

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par soazig
    Pour quelle utilisation ultérieure en as-tu besoin ?
    Que veux tu en faire?As tu un client? En quel langage est-il écrit?
    Je pense aussi que c'est un problème de voacabulaire.

    En fait, je fais un appel à cette procedure via mes pages Coldfusion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <CFSTOREDPROC PROCEDURE="MyStoredProcedure" DATASOURCE="#mydatasource#">
    <cfprocresult name="MesRows">
    </CFSTOREDPROC>
    La variable "Mesrows" va contenir sous forme de tableau les lignes et les champs.

    Ok le code donne retourne bien les rows au niveau de la PS mais la PS ne retourne rien.

    Christian,

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Je ne connais pas Coldfusion, j'ai regardé sur google et j'ai eu l'impression que pour récupérer les données de ta PS il faudrait mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <CFSTOREDPROC PROCEDURE="MyStoredProcedure" DATASOURCE="#mydatasource#">
    <cfprocresult name="MesRows"  resultset="1">
    </CFSTOREDPROC>
    Je suppose que l'indication resultset="1", crée l"équivalent de mon recordset VB, mais alors là, ma réponse est à prendre avec beaucoup de précaution, je ne suis pas sure du tout de ce que je suppose.

    A+
    Soazig

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/02/2013, 15h24
  2. Procédure stockée avec retour multiple
    Par lahmar.abdel1 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 17/02/2011, 16h19
  3. Execution procédure stockée avec un curseur
    Par simo333 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/10/2007, 11h00
  4. Appel d'une procédure stockée avec un curseur
    Par lapanne dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/12/2006, 16h24
  5. Procédure stockée avec param de sortie:marchepas av ADO
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/10/2004, 12h04

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