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

Windows Forms Discussion :

[vb.net][vbexpress] erreur output parameter stored procedure


Sujet :

Windows Forms

  1. #1
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut [vb.net][vbexpress] erreur output parameter stored procedure
    Bonjour,
    Le code suivant marche parfaitement sous VS2003. Sous VBExpress2005, j'ai l'erreur SQL: Error Converting data type varchar to int.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                da.Command.Parameters.AddWithValue("@QueryId", QueryId)
                da.Command.Parameters.AddWithValue("@ConstraintName", ConstraintName)
                da.Command.Parameters.AddWithValue("@ConstraintMessage", SqlDbType.VarChar)
                da.Command.Parameters("@ConstraintMessage").Size = 250
                da.Command.Parameters("@ConstraintMessage").Direction = ParameterDirection.Output
                da.ExecuteNonQuery("pr_Admin_GetConstraintMessage", DatabaseAccess.SQLType.StoredProcedure)
    je mets la déclaration de ma procédure stockée également (SQLServer2000)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE PROCEDURE pr_Admin_GetConstraintMessage
    @QueryId int,
    @ConstraintName varchar(128),
    @ConstraintMessage varchar(250) output
    Quelqu'un a une idée?
    Merci

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Pourquoi utilises-tu AddWithValue au lieu de Add pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    da.Command.Parameters.AddWithValue("@ConstraintMessage", SqlDbType.VarChar)
    alors qu'il est en output :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Tiens bonne question !
    En fait qd je suis passé de 2003 a 2005 j'avais un tas de warning, dont celui qui disait que Add était obsolete et qu'il fallait le remplacer par AddWithValue, donc j'ai fais un Replace All
    Bon j'essaye avec Add alors
    Je te tiens au courant.
    merci

  4. #4
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Bon j'ai essayé, et en fait ca ne change rien, toujours la meme exception

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    C'est tout de même pas ta procédure stockée côté BDD qui par erreur tenterait de retourner un int au lieu d'un varchar
    Edit en fait je viens de verifier MSDN et je n'ai pas vu la surcharge que tu as fait puisqu'il attend en second paramètre (type Object) comme value et non un type semble-t-il :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Non, j'ai donné la déclaration de ma procédure dans mon post
    et puis ca marche sous vs2003

  7. #7
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par graphicsxp
    Non, j'ai donné la déclaration de ma procédure dans mon post
    et puis ca marche sous vs2003
    oui j'avais compris mais ce n'est pas la déclaration qui execute quoi que ce soit
    j'ai entre deux editer mon post aussi
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  8. #8
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Citation Envoyé par neguib
    Edit en fait je viens de verifier MSDN et je n'ai pas vu la surcharge que tu as fait puisqu'il attend en second paramètre (type Object) comme value et non un type semble-t-il :
    Alors moi la définition c'est :


  9. #9
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par graphicsxp
    Citation Envoyé par neguib
    Edit en fait je viens de verifier MSDN et je n'ai pas vu la surcharge que tu as fait puisqu'il attend en second paramètre (type Object) comme value et non un type semble-t-il :
    Alors moi la définition c'est :

    oui je sais çà c'est pour Add mais pour AddWithValue non
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  10. #10
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Ha ok, mais j'utilise plus AddWithValue maintenant
    Donc on est d'accord, avec Add, je peux utiliser le Type en deuxieme argument. Et donc comme ma procédure retourne bien un varchar (vérifié), il y a donc un petit probleme quelque part... un bug dans vb express ?

  11. #11
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Tu as bien verifié si la fonction(non la déclaration) de ta procedure stockée était bien correct et ne tentait pas de retourner un int directement sans transtyper en varchar comme le demande justement la déclaration, car il est possible que l'exception générée ne soit pas côté appli
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  12. #12
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Le type dans ma table:

    Message varchar 250

    ma procédure stockée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE PROCEDURE pr_Admin_GetConstraintMessage
    @QueryId int,
    @ConstraintName varchar(128),
    @ConstraintMessage varchar(250) output
     
    AS
     
    SELECT @ConstraintMessage = Message
    FROM ConstraintMessages
    WHERE QueryId = @QueryId AND ConstraintName  = @ConstraintName
    GO
    résultat de ma procédure stockée dans QueryAnalizer: OK. retournes le résultat sous forme chaine de caractere
    résultat avec VS2003, OK.

    Alors quand meme, là tout porte a croire que la syntaxe coté client a du changer dans VBExpress, ou alors qu'il y a un bug non ?

  13. #13
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    essayes de nouveau avec AddWithValue met en ne mettant plus le type bien sûr mais une valeur quelconque DBNull
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  14. #14
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    aie j'ose pas te le dire....
    je me suis craqué. C'était bien AddWithValue le probleme, seulement quand j'ai changé AddWithValue avec Add, je me suis planté de fichier...
    désolé, fin de journée

    Merci Neguib
    @+

  15. #15
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par graphicsxp
    aie j'ose pas te le dire....
    je me suis craqué. C'était bien AddWithValue le probleme, seulement quand j'ai changé AddWithValue avec Add, je me suis planté de fichier...
    désolé, fin de journée

    Merci Neguib
    @+
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

Discussions similaires

  1. Erreur dans une store procedure
    Par java250r dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/07/2012, 18h59
  2. [Server SQL 2000] Erreur sur une "stored procedure"
    Par hunteshiva dans le forum MS SQL Server
    Réponses: 17
    Dernier message: 18/03/2011, 15h41
  3. Réponses: 0
    Dernier message: 17/07/2008, 09h17
  4. [3.5 + ADO.net] Récup Output Parameter
    Par CUCARACHA dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/02/2008, 11h17
  5. Réponses: 4
    Dernier message: 13/12/2006, 00h08

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