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

VB.NET Discussion :

Procédure stockée et paramètre optionel


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut Procédure stockée et paramètre optionel
    Bonjour,

    Je me suis mis dernière à l'utilisation des procédures stockées et des SqlParameters.

    Tout fonctionne à merveille sauf que je ne trouve pas nulle part des précisions sur les paramètres optionnels.

    Que faut-il faire dans ce cas ?

    Omettre le paramètre côté .NET ?
    Ajouter le paramètre en spécifiant manuellement sa valeur par défaut ? (le fait qu'il soit optionnel perd tout son intérêt).
    Faut-il utiliser le mot clef "DEFAULT" et l'affecter à la porpriété Value du SqlParamter ?

    Merci d'avance pour ces précisions.

    Griftou.

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Après quelques tests, il semblerait qu'il suffise d'omettre le paramètre pour que cela fonctionne.

    J'espère que cela pourra en aider d'autres (ce n'est vraiment dit nulle part )

    Griftou.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    il passe null mais le problème est souvent dans la requette sql

    parce que si ta SP est égale à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * From Etudiant Where Nom = @Nom  and Prenom = @Prenom
    tu vas avoir des problèmes quand tu éxécuteras la procédure avec
    @Nom='Toto'
    @Prenom=Null

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Dans ce cas là oui c'est un problème.

    Faut pas utiliser les paramètres optionnel n'importe comment non plus.

    Bête exemple :
    Une table client avec un id et diverses infos.

    Je peux par exemple créer une procédure stockée comme ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    create procedure up_Client_Select
          @id = 0 in
     
    as
     
    select *
    from dbo.TblClient
    where id = @id or @id = 0
    Dans mon code vb, je peux aller créer 2 méthodes appelant la même procédure stockée.

    Une méthode GetClientById(ByVal idClient as Integer).

    Et une méthode GetAllClients()

    Dans la première, je passe le paramètre à la procédure stockée et je récupère bien le client voulu.

    Dans la seconde, je ne passe rien et je récupère bien tous les clients de la table.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut

  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 : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    il passe null mais le problème est souvent dans la requette sql

    parce que si ta SP est égale à "Select * From Etudiant Where Nom = @Nom and Prenom = @Prenom"
    - Si la SP est conçu pour avoir des paramètres optionels, on peut penser que le cas de nullité est prévu.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select * From Etudiant Where Nom = @Nom  and (@Prenom
     is null or  Prenom = @Prenom)
    - Ensuite, un paramètre optionel reçoit en général une valeur par défaut justement.

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

Discussions similaires

  1. [SQL2K5] Procédure stockée avec paramètre à valeurs multiple
    Par Jinroh77 dans le forum Développement
    Réponses: 1
    Dernier message: 16/05/2008, 17h31
  2. Réponses: 0
    Dernier message: 15/01/2008, 11h16
  3. [SQL2005] [TSQL] Procédure stockée et paramètres
    Par Invité dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 13/12/2007, 13h53
  4. Procédure stockée et paramètres de retour..
    Par nikalkal dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/07/2006, 17h53
  5. Procédure stockée et paramètre CLOB
    Par Sebounet19 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/11/2005, 17h05

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