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

Requêtes et SQL. Discussion :

Erreur 450 avec une procedure stockée : Access/VB6


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut Erreur 450 avec une procedure stockée : Access/VB6
    Bonjour, Je dispose d'une fonction qui permet d'appeller une procedure stockée :
    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
     
    Public Sub OpenStoredProcedure(ByVal strNameProcedure As String, _
                                   Optional ArrayParametres As Variant)
    Dim Cmd As New ADODB.Command
     
        Cmd.ActiveConnection = cnnADO_MABASE
        Cmd.CommandText = strNameProcedure
        Cmd.CommandType = adCmdStoredProc
     
        Set rsADO_MABASE = Cmd.Execute(, ArrayParametres)
     
     
        ' Release Memory
        Set Cmd = Nothing
     
    End Sub
    A l'appel de cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    OpenStoredProcedure "Ma_Requete_Stockee", id, #2/1/2004#, #2/28/2004#
    quand je lance ce code, j'ai l'erreur 450 :
    Nombre d'arguments incorrect ou affectation de propriété non valide
    J'ai cherché sur les forums je ne trouve pas de solution, j'ai regardé l'aide sur MSDN, je n'arrive pas à comprendre ce qu'il faut faire?
    Si quelqu'un a déjà eu ce genre d'erreur, c'est gentil de me filer un coup de main Merci

  2. #2
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    J'ai posté ce problème ici mais j'aurais peut être plus de réponse si je le poste dans VB6 au lieu d'Access??? Personne n'a d'idée ou personne n'est interessé?! Je suis presque à la fin de ma journée et je n'arrive pas à enlever cette erreur!!!
    Si une bonne âme puisse me répondre

  3. #3
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Salut,
    juste une idée comme ça...
    C'est une requête que tu appelles?
    Cette fonction permet d'appeler une requête ?
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

  4. #4
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Oui elle permet d'appeller une requete stockée dans Access

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Je pense au passage des paramètres et surtout au rafraichissement.

    Voir l'info :

    Exécution de procédures stockées SQL Server avec ADO

    http://download.microsoft.com/downlo...storedproc.doc

    Procédure stockée avec paramètres
    Les procédures stockées possèdent généralement des paramètres. Il existe principalement deux méthodes pour passer des paramètres lors de l'exécution d'une procédure stockée, chacune présentant des avantages et inconvénients.

    Utilisation de la méthode Refresh
    La méthode la plus simple pour le programmeur est d'utiliser la méthode Refresh sur la collection Parameters. Cette méthode a pour avantage de demander de façon dynamique à la source de données quels sont les paramètres de la procédure stockée (Nom, type, …). L'inconvénient se situe au niveau des performances, car on interroge la source de données et on demande des informations en retour, avant de pouvoir exécuter la procédure. De plus, tous les fournisseurs OLEDB ne supportent pas forcément la méthode Refresh (par exemple, le fournisseur natif pour Oracle, MSADORA, ne supporte pas cette méthode alors que les fournisseurs SQLOLEDB ou bien MSDASQL la supporte).

    Cet exemple de code montre comment utiliser la méthode Refresh
    Dim cn As ADODB.Connection
    Dim cmd As ADODB.Command
    Dim rs As ADODB.Recordset
    Dim strConnOLEDB As String

    strConnOLEDB = "Provider=SQLOLEDB;Data Source=martinet03;Initial Catalog=Pubs;User ID=sa;Password="
    Set cn = CreateObject("ADODB.Connection")
    cn.Open strConnOLEDB

    Set cmd = CreateObject("ADODB.Command")
    Set cmd.ActiveConnection = cn
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "byroyalty"
    cmd.Parameters.Refresh
    cmd.Parameters(1).Value = 30
    Set rs = cmd.Execute
    While Not rs.EOF
    Debug.Print rs.Fields(0).Value
    rs.MoveNext
    Wend

    cn.Close
    Set cmd = Nothing
    Set cn = Nothing


    Création des objets Parameter
    La seconde méthode consiste à créer les objets Parameter nécessaires à la procédure stockée, et à les ajouter à la collection Parameters d'un objet Command. Cette méthode est plus difficile et plus fastidieuse pour le programmeur, car elle nécessite de connaître précisément les paramètres (nom, type, longueur) et d'écrire le code nécessaire à la création des paramètres. Par contre, elle a l'avantage d'être plus rapide en temps d'exécution que l'utilisation de la méthode Refresh. Cette méthode est donc fortement recommandée en raison de ses performances.

    Code de la procédure stockée proc_testParams possédant 2 paramètres en entrée et 1 en sortie
    CREATE PROCEDURE [proc_testParams]
    @lastname varchar(30) ,
    @firstname varchar(18) ,
    @result int OUTPUT
    AS
    SELECT @result = count (au_lname)
    FROM authors a INNER JOIN titleauthor ta
    ON a.au_id = ta.au_id
    WHERE au_fname LIKE = firstname
    AND au_lname LIKE = lastname


    Code Visual Basic: exécution de procédure stockée avec paramètres
    Dim cn As ADODB.Connection
    Dim cmd As ADODB.Command
    Dim strConnOLEDB As String

    strConnOLEDB = "Provider=SQLOLEDB;Data Source=martinet03;Initial Catalog=Pubs;User ID=sa;Password="
    Set cn = CreateObject("ADODB.Connection")
    cn.Open strConnOLEDB

    Set cmd = CreateObject("ADODB.Command")
    Set cmd.ActiveConnection = cn
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "proc_testParams"

    With cmd
    .Parameters.Append .CreateParameter("lastname", adVarChar, _
    adParamInput, 30, "Green")
    .Parameters.Append .CreateParameter("firstname", adVarChar, _
    adParamInput, 18, "Marjorie")
    .Parameters.Append .CreateParameter("result", adInteger, _
    adParamOutput)
    End With

    cmd.Execute
    Debug.Print cmd.Parameters(2).Value

    cn.Close
    Set cmd = Nothing
    Set cn = Nothing

    ....
    "Always look at the bright side of life." Monty Python.

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par poissonsoluble
    Oui elle permet d'appeller une requete stockée dans Access
    Requête ou procédure ? Access ne possède pas de procédure stockée.

  7. #7
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut Message d'erreur disparu mais résultat faux!!!
    Je vous remercie pour vos réponse, j'ai déjà trouvé même si je n'arrive toujours pas à avoir les résultats mais au moins ca ne plante pas au niveau de ma requete!!!
    je n'ai pas pu vous le dire car je n'avais pas le moyen de me connecter

    Pour Tofalu, c'est une requete stockée, c'est par abus de langage que j'ai utilisé le mot procedure qui est propre à SQLServer

    Je vais continuer à voir pourquoi ma requete ne me donne pas de résultat pourtant sous access elle marche très bien Je vous tiens au courant

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

Discussions similaires

  1. Problème avec une procedure stockée
    Par freud dans le forum SQL
    Réponses: 8
    Dernier message: 21/07/2008, 19h20
  2. Changement de connexion avec une procedure stocké
    Par CHAFIK2007 dans le forum Deski
    Réponses: 2
    Dernier message: 15/07/2008, 23h50
  3. Probleme avec une procedure stocké avec IF
    Par el_quincho dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/10/2006, 16h21
  4. [C#] [Oracle] Probleme avec une procedure stockée
    Par sronin1 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 28/05/2004, 19h04
  5. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 22h00

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