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 :

récupération résultat procédure stocké


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 53
    Par défaut récupération résultat procédure stocké
    Bonjour,

    Je suis sous Access 2003 avec SQLserver 2000 , j'ai une procédure stocké sous sqlserver qui me revoie un résultat,
    J'arrive a appeler des simple procédure stocké(qui ne retourne rien) mais mon probléme et sur les procédure qui retourne quelque chose ...

    Ma procédure a 1 paramètre en entrée

    voici le code que j'utilise pour appeler cette procédure ( je précise qu'il ne marche pas)

    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
     
        'on ouvre la connection
        connexOpen
     
        Set cmd = New ADODB.Command
        cmd.ActiveConnection = cnn
        cmd.CommandType = adCmdStoredProc
        cmd.CommandText = "CumulCout"
        'on crée les paramétre
        Set param = cmd.CreateParameter("@numproj", adNumeric, adParamInput, 3, numproj)
     
        'on execute la commende
        cmd.Execute
     
        'on ferme la connection
        connexClose
    voila j'ai vu que dans les type de paramétre il y avait adparamOutput donc j imagine que sa doi etre ça mais je ne sais pas comment l'utilisé, il faut lui donnée un nom mais je ne sais pas le nom qui faut lui donné

    je précise que ma procédure stocké et dans le dossier Function et non procédure stockées, je ne sais pas si sa change quelque chose


    voila j'espère avoir été clair

    merci

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    Une fonction SQL Server de type scalaire (renvoie une valeur) s'utilise généralement dans une instruction SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MaFonction(arguments) As AliasColonne
    Le résultat est un jeu de données, même s'il n'y a qu'une ligne et qu'une colonne.

    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
        Dim rs As ADODB.Recordset
        'on ouvre la connection
        connexOpen
     
        Set cmd = New ADODB.Command
        cmd.ActiveConnection = cnn
        cmd.CommandType = adCmdText
        cmd.CommandText = "SELECT dbo.CumulCout(" & Str(numproj) ")"
     
        'on execute la commande
        Set rs = cmd.Execute()
     
        Debug.Print rs(0).Value
     
        ' fermeture recordset
        rs.close
        set rs = Nothing
        'on ferme la connection
        connexClose
    Sinon on peut, à priori, utiliser une fonction comme une procédure stockée, avec un objet Command.
    J'ai testé, mais avec une version supérieure à SQL Server 2000.
    Ce code n'est valable que pour une fonction.
    Pas pour une procédure stockée où les paramètres de sortie sont, je crois, déclarés en dernier, et avec adParamOutput.
    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
        'on ouvre la connection
        connexOpen
     
        Set cmd = New ADODB.Command
        cmd.ActiveConnection = cnn
        cmd.CommandType = adCmdStoredProc
        cmd.CommandText = "CumulCout"
     
        ' création et ajout paramètre pour valeur retournée
        '  Rem1 : @RETVAL est un nom que j'ai choisi arbitrairement
        '  Rem2 : remplacer <type> par le bon type
        cmd.Parameters.Append cmd.CreateParameter("@RETVAL", <type> , adParamReturnValue, , 0)
     
        ' création et ajout paramètre en entrée n°1/1
        cmd.Parameters.Append cmd.CreateParameter("@numproj", adNumeric, adParamInput, 3, numproj)
     
        'on execute la commande
        cmd.Execute
     
        ' Valeur retournée par la fonction
        Debug.Print cmd.Parameters(0)
     
        'on ferme la connection
        connexClose
    A+

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 53
    Par défaut
    Salut,

    merci de ta réponse et désolé du retard

    je ne peut pas tester en se moment, dès que je peux je test avec les infos que tu m'a donnée et je te tiendrai au courant

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/05/2011, 12h12
  2. Récupération SELECT Procédure stockée
    Par erfindel dans le forum Développement
    Réponses: 2
    Dernier message: 25/02/2010, 22h37
  3. Réponses: 3
    Dernier message: 08/02/2010, 19h12
  4. Récupération résultat Procédure Stockée dans Vba Access
    Par lito74 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/02/2010, 18h45
  5. [MySQL] Affichage résultat procédure stockée
    Par Machjaghjolu dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/06/2007, 14h41

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