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

Bases de données Delphi Discussion :

[SQL Server] Passage d'un paramètre dans une procédure


Sujet :

Bases de données Delphi

  1. #1
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut [SQL Server] Passage d'un paramètre dans une procédure
    Bonjour !

    Sur une feuille, j'ai posé un DBLookUpComboBox qui récupère la liste des familles de produits.
    J'ai posé aussi un DBGrid qui doit afficher la liste des produits correspondants à la famille sélectionnée dans le DBLookUpComboBox.

    J'ai créé la procédure stockée suivante sous SQL Server :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE PROC ps_ListePdtParFamille
    (@num_type int)
    AS
    SELECT * 
    FROM produit
    WHERE no_type = @num_type
    ORDER BY design_pdt
    Sous Delphi, j'ai placé le code suivant sur l'événement OnCloseUp du DBLookUpComboBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          procLstPdtParFamille.Close;
          procLstPdtParFamille.Parameters.ParamByName('@num_type').Value := cbxLstModifPdt.KeyValue;
          procLstPdtParFamille.Open;
    Hors, à l'exécution, le problème suivant se pose lorsque je choisis une famille dans la liste :
    procLstPdtParFamille: Paramètres '@num_type' non trouvés

    Comment résoudre ce problème ??

    Merci d'avance pour votre aide,
    @+
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  2. #2
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    J'ai finalement trouvé l'erreur,
    il faut écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procLstPdtParFamille.Close;
    procLstPdtParFamille.Parameters.ParamByName('@num_type').Value := cbxLstModifPdt.KeyValue;
    procLstPdtParFamille.ExecProc;
    procLstPdtParFamille.Open;
    Par contre, je ne peux changer d'élement dans la liste. Si je clique sur un autre element, il y a une erreur de mémoire car la nouvelle valeur du procLstPdtParFamille.Parameters.ParamByName('@num_type').Value n'est pas prise en compte...

    Comment résoudre cette erreur ?
    Merci d'avance.
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Salut,

    tu dois faire un Clear sur Parameters avant de changer la valeur dans ta ligne procLstPdtParFamille.Parameters.ParamByName('@num_type').Value := cbxLstModifPdt.KeyValue;

    @+
    Ce n'est pas parce qu'on pédale dans la semoule, qu'on est sûr de manger du couscous... (anonyme)

  4. #4
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Sinon, il faut que tu ferme ta procedure stoqué avant de changer le paramètre avec la methode Close

    A+
    On progresse .....

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/12/2008, 10h04
  2. Réponses: 1
    Dernier message: 06/08/2007, 11h02
  3. [Ms SQL server 5.0] gros fichiers dans une table ou sur le DD?
    Par rastamath69 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/10/2006, 14h09
  4. [SQL SERVER 2005] Utilisation de Exec dans une fonction ?
    Par Dadou74 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 22/09/2006, 22h09
  5. [SQL server] Comment Fusionner des données dans une requête
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 15h24

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