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

Développement SQL Server Discussion :

Exécution d'une proc. stockée avec ADODB.Command dans un schéma précis de SQL Server.


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 54
    Points : 48
    Points
    48
    Par défaut Exécution d'une proc. stockée avec ADODB.Command dans un schéma précis de SQL Server.
    Bonjour,

    Je débute avec SQL Server et un truc me dérange :
    Je n'arrive pas à exécuter une procédure stockée via ADODB.command, sous Access, lorsque cette dernière ne fait pas partie du schéma par défaut du connectant alors que j'y arrive si je la lance directement depuis l'explorateur d'objet d'Access (mais ce n'ai pas ce que je veux faire !)

    Je m'explique, j'administre via SSMS et je me connecte, via Access, en position d'utilisateur (donc dans un rôle précis, et des accès à certains objets de ma base bien ciblés via un schéma dont le rôle est prioritaire).

    J'ai certains objets (proc. stockées, entre autres) qui seront communs à différents rôles. J'ai donc octroyer les droits d’exécution de ces procédures stockées aux rôles intéressés. Jusque là, tout fonctionne à merveille, les objets apparaissent dans l'explorateur d'Access. En double cliquant dessus, je peux exécuter mais c'est fastidieux (et pas pratique).


    Sous VB, j'ai créé des fonctions permettant l’exécution des procédure stockées via ADODB.command :
    En déclarant <Schéma>.<Proc Stockée> dans le CommandText, je ne récupère pas la liste des paramètres ... pour pouvoir le faire, je ne dois pas précisé le <schéma>. Mon problème arrive lors de l’exécution de la procédure stockée avec l'erreur "Procédure stockée introuvable", alors que l'initialisation des paramètres s'est bien passé !

    Coté Recordset, en déclarant <Schéma>.<Vue> comme source d'un recordset, j'arrive bien à ouvrir les données d'un autre schéma.

    Ca fait des heures que je cherche la raison ... pourquoi ça marche via access, en direct, mais pas via une command ADO (qui hérite pourtant de la même Connection)

    Merci pour votre aide ...

    Talere

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 54
    Points : 48
    Points
    48
    Par défaut J'ai trouvé !
    J'avais mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With MyCmde
        .ActiveConnection = CurrentProject.Connection
        .CommandType = adCmdStoredProc
        .CommandText = "[MyProc]"
        .Parameters("@MyParam") = 100
        .Execute
        MyVal=.Parameters("@RETURN_VALUE")
    End With
    Si j'initialise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Commandtext="[MySCH].[MyProc]"
    les paramètres ne sont pas automatiquement créés, et .commandtext n'est pas corrigée.

    En initialisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Commandtext="[MyProc]"
    les paramètres sont automatiquement créés mais la propriété .commandText est remplacée par "{ ? = call [MyProc](?, ?, ?, ?) }" ... Lors de l’exécution, le schéma n'est pas précisé, un message d'erreur apparaît "Procédure introuvable [MyProc] introuvable"

    J'ai remplacé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With MyCmde
        .ActiveConnection = CurrentProject.Connection
        .CommandType = adCmdText
        .CommandText = "{ ? = call [MySCH].[MyProc](?) }"
        .Parameters("@MyParam") = 100
        .Execute
        MyVal=.Parameters("@RETURN_VALUE")
    End With
    Et ça marche !

    Je ne pense pas que cela soit normal, mais

    J'espère que cela va aider d'autre personnes

    TALERE

Discussions similaires

  1. Exécution d'une proc stock sans ramener les données
    Par Yomen dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/04/2008, 23h11
  2. [SqlServer2000] Problème de temps d'exécution d'une proc stock
    Par GuillaumeBibaut dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/11/2006, 14h31
  3. Réponses: 9
    Dernier message: 23/09/2006, 17h13
  4. Réponses: 2
    Dernier message: 12/06/2006, 12h35
  5. Commande d'exécution d'une procedure stockée SQL sur vb
    Par tseg dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/11/2003, 12h47

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