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, transact SQL et param de type INT


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 91
    Points : 65
    Points
    65
    Par défaut Procédure stockée, transact SQL et param de type INT
    Bonjour, -code en bas de post-

    1/ Pb pour l'ajout d'un paramètre de type int dans une phrase SQL
    contenue dans une sp_
    Au lieu de me faire une concaténation de chaine, il me fait une
    addition.

    Err :
    [FONT=Arial][/FONT] [FONT=Arial]Microsoft OLE DB Provider for SQL Server[/FONT] [FONT=Arial]error '80040e07'[/FONT]
    [FONT=Arial]Erreur de syntaxe lors de la conversion de la valeur nvarchar 'INSERT INTO [TP_TypeUsers] (Intitule, UID) VALUES ('TEST' , ' vers une colonne de type de données int.
    [/FONT]
    [FONT=Arial]
    2/ Concernant la gestion des erreurs, est-ce correct ?
    [/FONT]
    [FONT=Arial]
    Merci de votre Aide.
    PS : Suis-je un peu c*n, ou il n'y a plus le bouton "rechercher"
    sur le forum ?
    [/FONT]
    [FONT=Arial]
    Samish
    [/FONT]

    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
    22
    23
     
    CREATE PROCEDURE sp_PRM01_INSERT
        @PrmTable nvarchar(50), 
        @PrmValue nvarchar(50),
        @PrmUID int,
        @PrmErr int OUTPUT
    AS    
        DECLARE @SQL varchar(1200)     
        Set @SQL = 'INSERT INTO ['  + @PrmTable + '] (Intitule, UID) VALUES (' + @PrmValue + ' , '  + @PrmUID + ' ) ;'
     
        BEGIN TRANSACTION
        EXEC (@SQL)
        IF @@ERROR <>0
        BEGIN
            ROLLBACK TRANSACTION
            SET @PrmErr=-1
             RETURN
        END
     
        COMMIT TRANSACTION
           SET @PrmErr=0
           RETURN
    GO
    Samish, rentier et futur retraité
    Padawan #7896358

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    C'est sans doute dû aux priorités de conversion (numérique avant chaîne).
    Il te suffit de caster ton int
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ... + CAST(@prmUID AS NVARCHAR(10) + ...
    Attention également au type de ta variable @SQL, qui est déclarée en VARCHAR alors que tes paramètres chaîne sont de type NVARCHAR

  3. #3
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut
    tout à fait d'accord avec Numak
    j'suis vert !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Points : 39
    Points
    39
    Par défaut
    Tu vois, nous sommes deux à te le dire ...

    Salut à toi, ô géant vert

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Bonjour,

    1/ Merci de votre aide et de vos conseils

    2/ Effectivement, hier soir j'ai passé @PrmUID en nvarchar(10), et c'est passé.

    Merci, A+ Samish
    Samish, rentier et futur retraité
    Padawan #7896358

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

Discussions similaires

  1. Delphi XE5 procédures Sockées Transact-SQL data type
    Par alheuredudejeuner dans le forum Bases de données
    Réponses: 7
    Dernier message: 30/06/2015, 18h12
  2. [PowerBuilder 10] Procédure stockée sous SQL Server 2000
    Par digital prophecy dans le forum Powerbuilder
    Réponses: 8
    Dernier message: 11/10/2006, 10h38
  3. Procédures stockées vs SQL direct
    Par odelayen dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2006, 10h09
  4. Réponses: 2
    Dernier message: 05/12/2005, 16h39
  5. Procédures stockées imbriquées SQL Server
    Par Mike69 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/10/2003, 10h31

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