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

ADO.NET Discussion :

Appel d'une fonction existante dans une base de données


Sujet :

ADO.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 125
    Points : 90
    Points
    90
    Par défaut Appel d'une fonction existante dans une base de données
    Bonjour,

    J'ai écrit une fonction dans ma base de donnée, puis j'ai voulu accéder à cette fonction en utlisant une couche d'accès aux donnée avec ADO.NET.

    j'ai suivi l'asistant pour la création de l couche d'accès à la base de donées , mais ce qui m'étonne c'est que l'assistant me demande d'ajouter les tables voulue et les procédures stockées dans la abse de données mais n'affiche rien à propos de la fonction.
    je sais pas comment ajouter cette fonction parceque je veux l'appeler dans mon code.
    s'il vous plait aidez moi parceque ce problème me bloque.

  2. #2
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    je sais pas comment ajouter cette fonction parce que je veux l'appeler dans mon code.
    Alors pourquoi ne pas l'appeler directement à partir du code.Tu peut l'appeler comme la procédure stockée mais il faut préfixer le nom de la fonction par le nom de la base de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DbCommand cmd = new SqlCommand();
    cmd.CommandText="Select nomdelabase.dbo.nomFonction(@param) as result";
    ........
    Bonne chance.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par marwa21 Voir le message
    Bonjour,

    J'ai écrit une fonction dans ma base de donnée, puis j'ai voulu accéder à cette fonction en utlisant une couche d'accès aux donnée avec ADO.NET.

    j'ai suivi l'asistant pour la création de l couche d'accès à la base de donées , mais ce qui m'étonne c'est que l'assistant me demande d'ajouter les tables voulue et les procédures stockées dans la abse de données mais n'affiche rien à propos de la fonction.
    C'est tout à fait normal, vu qu'une fonction retourne un résultat (scalaire) mais pas de données. Or la couche d'accès par essence ne s'intéresse qu'aux données.
    Appeler une fonction en dehors d'une requête SQL n'a donc pas trop de sens du point de vue du client; pas plus de sens que d'appeler une colonne, par exemple et cela n'a rien à voir avec ADO.NET.
    De fait, on ne peut faire ni l'un ni l'autre : il suffit taper le nom d'une fonction dans SSMS hors d'une requête et il t'enverra une erreur; à l'inverse, une ps peut être appelée directement.

    je sais pas comment ajouter cette fonction parceque je veux l'appeler dans mon code.
    Comme mentionner par ramajb, l'appeler dans une requête.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    C'est tout à fait normal, vu qu'une fonction retourne un résultat (scalaire) mais pas de données
    Vous parlez de fonction scalaire, il existe d'autres formes de fonction SQL tout aussi utilisées! : les fonctions table qui permettent la syntaxe suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT CODE, COL2
     FROM dbo.FN_MAFONCTION(@mavariable) 
     ORDER BY CODE
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Vous parlez de fonction scalaire, il existe d'autres formes de fonction SQL tout aussi utilisées! : les fonctions table qui permettent la syntaxe suivante:
    C'est absolument exact, mais pour la simplicité j'avais délibérément omis les fonctions d'agrégat et un peu oublié (mais pas délibérément) les fonctions tables.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    J'appuis le point de vue d'ibersek.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Il me semble que vous avez oublié de marquer [Résolu] ce post.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. appeler une fonction php dans une fonction javaScript
    Par geeksDeve dans le forum Langage
    Réponses: 3
    Dernier message: 17/04/2012, 15h30
  2. Réponses: 1
    Dernier message: 21/07/2009, 11h51
  3. Réponses: 10
    Dernier message: 14/03/2009, 13h36
  4. Réponses: 4
    Dernier message: 24/04/2008, 15h46
  5. Réponses: 1
    Dernier message: 25/10/2007, 21h25

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