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 :

procédure stocké tableau en retour


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 8
    Par défaut procédure stocké tableau en retour
    Bonjour,
    j'ai un petit soucis d'appel de procédure stockée en VB.net.

    j'ai donc une procédure stockée oracle dans laquelle j'ai un tableau de varchar en sortie.

    Quand je l'appel en vb.net j'ai un soucis, en effet je ne sais pas comment déclarer le type de mon paramètre.

    voici le code :

    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
    24
    25
    26
    27
    28
    29
    30
    'Déclarations 
            Dim sProcedure As String
            Dim cmCommand1 As OleDb.OleDbCommand
            Dim dbResult As Integer
            Dim p0 As OleDb.OleDbParameter
            Dim p1 As OleDb.OleDbParameter
     
            'Instanciation et affectation
            cmCommand1 = New OleDb.OleDbCommand
            sProcedure = "MPF_BCL_PCK_SELECT.p_sel_vague_activ_sap"
            cmCommand1.CommandText = sProcedure
            cmCommand1.CommandType = CommandType.StoredProcedure
            cmCommand1.Connection = OLEcnx
     
            'paramètres de la procédure stockées
            p0 = New OleDb.OleDbParameter("vnvag", sNumeroVague)
            p1 = New OleDb.OleDbParameter("vactiv_sap", OleDb.OleDbType.Varchar, 200)
     
            p1.Direction = ParameterDirection.Output
     
            With cmCommand1.Parameters
                .Add(p0)
                .Add(p1)
            End With
     
            Try
                cmCommand1.ExecuteReader()
            Catch ex As OleDb.OleDbException
                Log.WriteLogErreur(ex.Message, ex.Source, "ClassORA@Get_Flg_ActivSAP_Vague")
            End Try
    A l'exécution dans mon fichier log j'ai l'érreur suivante :

    RUM35NT Source : Microsoft OLE DB Provider for Oracle - ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments
    Quelqu'un a une idée??

    Merci d'avance.

  2. #2
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    tu n'as pas donné de valeur à ton p0

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 8
    Par défaut
    Citation Envoyé par Poulain Voir le message
    tu n'as pas donné de valeur à ton p0
    si si je le passe en paramètre dans ma fonction VB.

  4. #4
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    mouai, donc pour toi, tu donnes la valeur comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p0 = New OleDb.OleDbParameter("vnvag", sNumeroVague)
    et sNumeroVague est la valeur.

    Pour SQL, et don je pense aussi pour Oracle,c'est comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    p0 = New OleDb.OleDbParameter("vnvag",OleDb.OleDbType.int)
    p0.value = sNumeroVague

  5. #5
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Quels sont les types des paramètres qu'attend ta procédure stockée ?

    Poulain :
    Il y a une surcharge du constructeur qui permet de passer le nom du paramètre et la valeur.

    Citation Envoyé par MSDN

    OleDbParameter (String, Object) Initialise une nouvelle instance de la classe OleDbParameter qui utilise le nom du paramètre et la valeur du nouveau OleDbParameter.

  6. #6
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Kelpan Voir le message
    Poulain :
    Il y a une surcharge du constructeur qui permet de passer le nom du paramètre et la valeur.
    Ah ben zut, ça ne marche as comme SQL

  7. #7
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 8
    Par défaut
    Citation Envoyé par Kelpan Voir le message
    Quels sont les types des paramètres qu'attend ta procédure stockée ?

    Poulain :
    Il y a une surcharge du constructeur qui permet de passer le nom du paramètre et la valeur.
    Merci pour vos réponses.

    la procédure stockée attend donc 2 paramètres.
    Le premier est un varchar2 et le second est un tableau de varchar2.
    Je pense que mon problème viens de la déclaration du second paramètre le tableau de varchar2. je ne sais pas comment le déclarer en vb.net. en vb 6 je faisait {resultset 100, vactiv_sap} ça fonctionnait très bien mais là en .net je ne sais pas comment faire.

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

Discussions similaires

  1. Procédure stockée en Mysql : retour tableau
    Par Luc_Dal dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 20/06/2012, 20h43
  2. Procédure stockée Tableau de colonnes en paramètre
    Par Cedric33 dans le forum Développement
    Réponses: 7
    Dernier message: 16/04/2010, 12h59
  3. [WD15] Procédure stockée valeur de retour
    Par thierrybatlle dans le forum WinDev
    Réponses: 12
    Dernier message: 09/04/2010, 11h43
  4. [SQL server 2005][vb.net] procédure stockée, valeur de retour
    Par Ouija33 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/03/2008, 18h33
  5. Procédure stockée + tableau
    Par ToxiZz dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 21/05/2006, 23h39

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