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 avec param de sortie:marchepas av ADO


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 56
    Points
    56
    Par défaut Procédure stockée avec param de sortie:marchepas av ADO
    Bonjour,

    Je cherche à executer une procédure stockée via ADO, cette procédure à un paramètre de sortie, mais pourtant ça ne fonctionne pas, j'ai un message d'erreur :'Précision non valide' et je ne comprends pas pourquoi, j'ai essayé de modifier les types, rajouter et enlever des options mais rien n'y fait, j'espère que quelqu'un pourra m'aider.

    Code de la procédure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Create procedure dbo.proc1
    (@SommeGen real output)
     
    AS
    Declare @SQLExe varchar(2000)
     
    SET SQLExe='Select Sum(a.mt_Debit+a.mt_Credit) FROM '+user+'.TableUtilisateur_'+user+' as a'
     
    EXEC(@SQLExe)
     
    GO
    La procédure a été testée et fonctionne bien

    Maintenant le code ADO
    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
     
    Dim rc As Recordset
      Dim cnn As ADODB.Connection
      Dim Conn As String
      Dim cmdExeproc As ADODB.Command
      Dim SommeGEN As Variant
      Dim Prm As ADODB.Parameter
     
    'Definition de la connexion ADO
    Set cnn = New ADODB.Connection
    Set cmdExeproc = New ADODB.Command
     
    'Chaine de connexion ADO
    Conn = "Provider=sqloledb; Data Source=Serveur; Initial Catalog=Base; User ID=User "
     
    'Ouverture de la connexion
    cnn.Open Conn
     
     
    Set cmdExeproc.ActiveConnection = cnn
    cmdExeproc.CommandType = adCmdStoredProc
     
    cmdExeproc.CommandText = "proc1"
    Set Prm = cmdExeproc.CreateParameter("@SommeGen", adSingle, adParamOutput) 'définition du paramètre
    cmdExeproc.Parameters.Append Prm
     
    cmdExeproc.Execute , , adExecuteNoRecords  <<<===C'EST LA QUE CA PLANTE
     
    SommeGEN = cmdExeproc.Parameters("@SommeGen")
    AU niveau du .execute j'ai le message 'Précision non valide', je sais plus quoi faire, j'espère que ce ne sera pas votre cas

    Merci

  2. #2
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    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
    31
    32
    33
    34
    35
    36
    37
    38
    ' Sproc Wizard Code Generation START ---------------------
     
    Dim cn As ADODB.Connection
    Dim cmd As ADODB.Command
    Dim params As ADODB.Parameters
    Dim param As ADODB.Parameter
     
    ' Create connection and command objects
    Set cn = New ADODB.Connection
    Set cmd = New ADODB.Command
     
    ' Set connection properties and open
    cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=tempdb;Data Source=*******\**********"
    cn.Open
     
    ' Set command properties
    With cmd
        Set .ActiveConnection = cn
        .CommandText = "proc1"
        .CommandType = adCmdStoredProc
        Set params = .Parameters
    End With
     
    ' Define stored procedure params and append to command.
    params.Append cmd.CreateParameter("@RETURN_VALUE", adInteger, adParamReturnValue, 0)
    params.Append cmd.CreateParameter("@SommeGen", adSingle, adParamInputOutput, 0, Null)
     
    ' Specify input parameter values
    params("@SommeGen") = MyVariable
     
    ' Execute the command
    cmd.Execute , , adExecuteNoRecords
     
    ' Retrieve stored procedure return value and output parameters
    MyVariable = params("@RETURN_VALUE")
    MyVariable = params("@SommeGen")
     
    ' Sproc Wizard Code Generation END -----------------------
    a+

  3. #3
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 56
    Points
    56
    Par défaut
    je te remercie, je vais essayer ça, mais je remarque que MyVariable n'est pas definit, c'est normal?

  4. #4
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Oui c'est du code genere automatiquement donc il reste quelques petites choses a faire quand meme

  5. #5
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 56
    Points
    56
    Par défaut
    Lol, oui je m'en suis rendu compte après, mais c'est sur le coup que je ne pigeais pas, en tout cas, ça fonctionne

    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/10/2009, 13h53
  2. Procédure stockée avec retour de curseur
    Par Oufti dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 07/11/2005, 22h40
  3. Procédure stockée avec SELECT UNION
    Par maredami dans le forum Oracle
    Réponses: 4
    Dernier message: 07/11/2005, 11h05
  4. Procédure stockée avec serveur lié et paramètres
    Par AITOZ dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/10/2005, 17h51

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