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

VBA Access Discussion :

[ADO]Procédure stocké Oracle


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut [ADO]Procédure stocké Oracle
    Bonjour,

    J'essai d'appeler une procédure stocké en Oracle et Access me retourne toujours ce message : Aucune valeur donnée pour un ou plusieurs des paramètres requis.


    Voici mon code VBA

    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
    Dim cnx As New ADODB.Connection
    Dim cmd As ADODB.Command
     
       With cnx
            '.ConnectionString = "DSN=FIP_ORA;UID=u9917;PWD=hummer01;DRIVER=msdaora;Server=devor1b"
            .Open "Provider=MSDAORA.1;Password=hummer01;User ID=u9917;Server=devor1b;Data Source=DEVOR1B"
            '.Open
         End With
     
       Set cmd = New ADODB.Command
     
       With cmd
            .ActiveConnection = cnx
     
            .CommandText = "AFD.EXG1_EmisLettrTypCnsul.valid_mode_difsn_mdl_doc(?,?,?)"
            .Parameters.Append .CreateParameter("p_cod_ret", adNumeric, adParamOutput)
            .Parameters.Append .CreateParameter("p_med_no_mode_emis_doc", adNumeric, adParamInput)
            .Parameters.Append .CreateParameter("p_mdo_no_seq_mdl_doc", adNumeric, adParamInput)
            .Parameters(0).Value = 2
            .Parameters(1).Value = 183
            .CommandType = adCmdStoredProc
       End With
       Set rstADO = New ADODB.Recordset
       rstADO = cmd.Execute


    Et voici ma Procédure Stocké
    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
     
    PROCEDURE valid_mode_difsn_mdl_doc(p_cod_ret              OUT VARCHAR2
                                      ,p_med_no_mode_emis_doc IN  ben_mode_emis_typ_doc.med_no_mode_emis_doc%TYPE
                                      ,p_mdo_no_seq_mdl_doc   IN  ben_typ_doc_prcod_mdl_doc.mdo_no_seq_mdl_doc%TYPE)
    IS
    BEGIN
       p_cod_ret := '0';
     
       ben.ben3510a.valid_mode_difsn_mdl_doc(p_cod_ret,
                                             p_med_no_mode_emis_doc,
                                             p_mdo_no_seq_mdl_doc);
     
       IF p_cod_ret = '11654' THEN
            p_cod_ret := '12977';
       ELSE
            IF p_cod_ret = '1299' THEN
               p_cod_ret := '3295';
            END IF;
       END IF;
     
    EXCEPTION
     
       WHEN OTHERS THEN
     
          -- Erreur imprévue @1 @2
             p_cod_ret := '3295@' || gl_cte_package || '_valid_mode_difsn_mdl_doc@' ||
                                 LOWER(SUBSTR(SQLERRM, 1, 500));
     
    END valid_mode_difsn_mdl_doc;

    Merci de m'aider

  2. #2
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Bjr,

    Utilise les balises de code (bouton #) ça fait moins mal aux yeux quand on te lit

    Sinon vite fait, sans bien connaître les procédures stockées, je vois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .Parameters.Append .CreateParameter("p_cod_ret", adNumeric, adParamOutput)
    .Parameters.Append .CreateParameter("p_med_no_mode_emis_doc", adNumeric, adParamInput)
    .Parameters.Append .CreateParameter("p_mdo_no_seq_mdl_doc", adNumeric, adParamInput)
    .Parameters(0).Value = 2
    .Parameters(1).Value = 183
    Trois paramètres, deux valeurs, et la troisième???

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut Procédure stocké Oracle
    en fait, j'ai un parametre output et deux intput donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .Parameters.Append .CreateParameter("p_cod_ret", adNumeric, adParamOutput)
     
    .Parameters.Append .CreateParameter("p_med_no_mode_emis_doc", adNumeric, adParamInput)
    .Parameters.Append .CreateParameter("p_mdo_no_seq_mdl_doc", adNumeric, adParamInput)
     
    .Parameters(1).Value = 2
    .Parameters(2).Value = 183
    c'est correct je crois ... ou il ne faut pas créer de paramètre pour le output ?

Discussions similaires

  1. [ADO]Exécuter une procédure stockée Oracle
    Par randriano dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 21/04/2008, 13h55
  2. Procédures stockées ORACLE 10g - JAVA 1.6
    Par poussinette0712 dans le forum JDBC
    Réponses: 2
    Dernier message: 27/03/2007, 01h49
  3. procédure stockée Oracle depuis VB.net
    Par marcusien dans le forum SQL
    Réponses: 18
    Dernier message: 09/03/2007, 21h53
  4. procédure stockée + Oracle
    Par BONNEFOI Patrick dans le forum Bases de données
    Réponses: 4
    Dernier message: 19/04/2005, 16h09
  5. procédure stockée Oracle dans delphi 6
    Par UPNE387 dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/05/2004, 10h47

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