Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Discussion: Problème de curseur

  1. #1
    Membre Expert
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    juillet 2006
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : juillet 2006
    Messages : 2 808
    Points : 2 424
    Points
    2 424

    Par défaut Problème de curseur

    Bonjour,

    Je rencontre un problème que je ne comprends pas....

    Dans un script que j'ai écris qui est sensé importé les données d'une "vieille DB" dans une nouvelle, je fais ceci :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    DECLARE @SEQNRHIST    INT;
    DECLARE @BARCODE    CHAR(13);
    DECLARE @DATE    DATETIME;
    DECLARE @ACTION        CHAR(1);
    DECLARE    @ORIGIN        INT;
    DECLARE @DESTTYPE    INT;
    DECLARE    @DEST        INT;
    DECLARE @VALUE        INT;
    DECLARE    @SALETYPE    INT;
    DECLARE    @USERTYPE    INT;
     
    DECLARE C CURSOR FOR
    SELECT
            SEQNRHIST
            BARCODE,
            DATTIM,
            ACTION,
            ORIGIN,
            DESTTYPE,
            DEST,
            VALUE,
            SALETYPE,
            USERTYPE
    FROM
            T_CHEQUE_ACHAT_HISTORY
    ORDER BY
            DATTIM,
            SEQNRHIST
     
    OPEN C;
     
    FETCH C INTO @SEQNRHIST, @BARCODE, @DATE, @ACTION, @ORIGIN, @DESTTYPE, @DEST, @VALUE, @SALETYPE, @USERTYPE;
    WHILE @@FETCH_STATUS = 0
    BEGIN
        --TOUT UN TAS DE TRAITEMENT
        FETCH C INTO @SEQNRHIST, @BARCODE, @DATE, @ACTION, @ORIGIN, @DESTTYPE, @DEST, @VALUE, @SALETYPE, @USERTYPE;
    END
     
    CLOSE C;
    DEALLOCATE C;
    A moins que je ne sache plus compte jusqu'à 10, j'ai bien le même nombre de variables dans l'instruction FETCH quand de colonnes dans l'ordre SELECT.

    Pourtant, sql server persiste à me donner l'erreur suivante :
    Msg 16924, Level 16, State 1, Line 49
    Cursorfetch: The number of variables declared in the INTO list must match that of selected columns.
    J'ai demandé de l'aide à Google mais sans grand résultat...

    Auriez-vous une idée en cette veille de Noël ?

    Merci d'avance.
    Kropernic (anciennement Griftou).

  2. #2
    Membre Expert
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    juillet 2006
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : juillet 2006
    Messages : 2 808
    Points : 2 424
    Points
    2 424

    Par défaut

    Trop la loose...

    Manquait une p##### de virgule dans le SELECT...

    2H que je cherche dans google d'où cette erreur pouvait bien venir...

    Par contre c'est bizarre...
    Comment se fait-il que la requête arrive jusqu'à l'instruction FETCH alors qu'il y a une erreur de syntaxe dans le SELECT ???

    Et du coup, pourquoi n'ai-je pas obtenu un message d'erreur de syntaxe ???
    Kropernic (anciennement Griftou).

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •