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

C# Discussion :

[Procédure Stockée] Paramètres NULL et valeurs par défaut


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut [Procédure Stockée] Paramètres NULL et valeurs par défaut
    Salut,

    J'ai posé une question sur le forum MS SQL, mais sans grand succès alors je viens voir si du coté des développeur certains ont déjà essayé de faire la même chose que moi

    A savoir, récupérer les paramètres d'un procédure stockée. Jusque là rien de très méchant, puisqu'il y a plusieurs façon:
    Directement en c#
    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
    SqlParameter[] parameterArray2;
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        using (SqlCommand command = new SqlCommand(spName, connection))
        {
            connection.Open();
            command.CommandType = CommandType.StoredProcedure;
            SqlCommandBuilder.DeriveParameters(command);
            if (!includeReturnValueParameter)
            {
                command.Parameters.RemoveAt(0);
            }
            SqlParameter[] array = new SqlParameter[command.Parameters.Count];
            command.Parameters.CopyTo(array, 0);
            parameterArray2 = array;
        }
    }
    return parameterArray2;
    Via les Vues Systems
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT p.name, p.default_value
         FROM sys.all_parameters p
         INNER JOIN sys.all_objects o ON o.object_id = p.object_id
    WHERE o.type='P' AND o.schema_id=1
    Maintenant le problème: ces méthodes ne m'indique pas si un paramètres est NULLABLE, ou encore ça valeur par défaut...

    Or, c'est de ça que j'ai le plus besoin

    Si quelqu'un à une idée, je suis preneur. Merci!

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Tous les paramètres des proc stoc sont nullables, c'est pour cela que rien ne l'indique.

    EDIT : dans le cas de Sql Server, je précise.

    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

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Aïe :/
    Et il n'y à aucun moyen de connaitre si elles sont déclaré avec un paramètres par défaut?

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 DarkHerumor Voir le message
    Aïe :/
    Et il n'y à aucun moyen de connaitre si elles sont déclaré avec un paramètres par défaut?
    Les valeurs par défaut se trouvent dans sys.parameters.default.

    EDIT : ERRARE ! après verif ce n'est vrai que pour les ps en CLR. Ce n'est pas exact pour les ps en T-SQL

    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

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Bon bah je vais faire sans

    Edit: Me viens une idée folle... A votre avis c'est possible de récupérer le script d'une procédure stockée (pour ensuite parser ce code est retrouver les valeurs par défaut dans les décalrations) ?

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 DarkHerumor Voir le message
    Bon bah je vais faire sans

    Edit: Me viens une idée folle... A votre avis c'est possible de récupérer le script d'une procédure stockée
    Bien sur. Comment ferait l'éditeur de proc stoc de VS si ce n'était pas possible ?

    Quant à le parser c'est assez trivial puisque l'endroit où se trouvent les paramètres est clairement défini.

    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

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Si tu as une idée je t'avoue que je suis preneur Je ne trouve rien de bien explicite sur google

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 DarkHerumor Voir le message
    Si tu as une idée je t'avoue que je suis preneur Je ne trouve rien de bien explicite sur google
    Aucune sur le moment, désolé ....

    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

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT     *
        FROM     INFORMATION_SCHEMA.Routines

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Je note, ça peut servir !

    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

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Attention, elsuket ma précisé ici que la requête que j'ai cité au dessus ne retourne que les 4000 première caractères (nvarchar(MAX) en gros).

    Donc pour récupérer entièrement une procédure stockée il faut interroger la vue sys.sql_modules.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/07/2012, 09h21
  2. Réponses: 0
    Dernier message: 07/10/2010, 20h11
  3. [Procédure Stockée] Paramètres NULL et valeurs par défaut
    Par DarkHerumor dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 27/02/2009, 17h54
  4. [c#][procédure stockée] paramètre à null
    Par pinocchio dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/10/2006, 16h09
  5. [C#] Procédures stockées - Paramètres "null"
    Par aymron dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/12/2005, 17h06

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