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 des curseurs


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut Utilisation des curseurs
    Bonjour,

    Je sais que la plupart du temps, nous avons tendance a utiliser les curseurs dans des cas où une simple requete adapté suffirait.

    Cependant, je pense que dans mon cas je dois vraiment utiliser les curseurs donc je veux apprendre a les manipuler. Je prend un exemple au hasard uniquement pour illustrer l'utilisation des curseurs.

    Soit une table Score(Int idScore, int IdJeux, int Score) qui stocke les scores de joueurs pour différent jeux.
    Les enregistrements de la table s'organise comme suit:

    IdScore _ Idjeux _ IdJoueur _ Score

    1 _ 1 _ 1 _ 12

    2 _ 1 _ 1 _ 16

    3 _ 2 _ 1 _ 34

    4 _ 2 _ 1 _ 12


    A l'aide d'une requete, je recupère Idjeux et Score pour le joeur 1 et j'obtiens donc:

    IdJeux _ Score

    1 _ 12

    1 _ 16

    2 _ 34

    2 _ 12

    Maintenant je veux insérer dans une table ListeScore(int Idjeux, int Score1, int Score2) de facon a avoir un jeu d'enregistrement comme suit:

    Idjeux _ Score1 _ Score2

    1 _ 12 _ 16

    2 _ 34 _ 12

    A mon avis(je m'excuse si je raconte des bétises mais de toute facon vous aller surement me corriger )
    Avant mon insctruction Select je sais que je dois déclarer un curseur mais j'ai beaucoup de mal a définir la suite. Je pense que je dois déclarer 2 curseurs, Un pour parcourir verticalement et horizontalement mon jeu d'enregistrements mon jeu d'enregistrement et un autre pour parcourir de façon horizontal ma table de destination.

    Mon code de départ

    Declare ScoreCursor FOR
    SELECT IdJeux, Score FROM SCORE
    WHERE IdJoueur = 1

    Open ScoreCursor

    Et c'est la que je me demande bien comment je dois procéder pour continuer. la documentation que j'ai trouvé est trop compliqué, c'est pour ca que j'ai pris la peine de poster avec un exemple simple. Si quelqu'un peut me guider.

  2. #2
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    DECLARE @jeux varchar(10)
    DECLARE @score varchar(10)
     
    DECLARE curseur CURSOR FOR
     
    SELECT DISTINCT IdJeux , Min(Score) FROM Score GROUP BY idJeux
    OPEN curseur
    FETCH NEXT FROM curseur INTO
    @jeux, @score
    WHILE @@FETCH_STATUS = 0
    BEGIN
     
    UPDATE ListeScore set Idjeux @jeux, Score1 = @score, Score2 = (SELECT score from Score WHERE score <> @score AND id_jeux = @jeux AND score = @score )
     
    FETCH NEXT FROM curseur INTO
    @jeux, @score
    END
    Close curseur
    DEALLOCATE curseur
    GO

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut
    C'est très compréhensible et très lisible. je vais mettre en pratique. Cette exemple ma permis de comprendre la documentation que j'avais trouvé.


    Merci beaucoup

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

Discussions similaires

  1. Utilisation des curseurs
    Par CharleLéo dans le forum SQL
    Réponses: 2
    Dernier message: 09/10/2009, 17h05
  2. Réponses: 4
    Dernier message: 30/09/2009, 12h56
  3. utilisation des curseurs
    Par lola123 dans le forum Informix
    Réponses: 2
    Dernier message: 10/12/2007, 01h07
  4. Utilisation des curseurs
    Par LBO72 dans le forum SQL
    Réponses: 2
    Dernier message: 28/11/2007, 15h37
  5. Utiliser des curseurs et des menus popup spéciaux
    Par randriano dans le forum Delphi
    Réponses: 3
    Dernier message: 05/04/2007, 13h04

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