Requette parametrée

achraf66 Messages postés 13 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 18 septembre 2004 - 9 sept. 2004 à 13:05
Arlequine Messages postés 18 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 18 février 2005 - 24 sept. 2004 à 15:33
Salut les infos
Mon problème est que je sais pas comment faire une requette (Select) mais parametrée (les parametres sont des conditions de recherche) ,de tel façon que j'aurai peut être pas besoin de remplir toutes les conditions;
A signaler que les conditions seront remplis à partir des checkbox
Si quelqu'un pourra m'aider ,qu'il soit le bienvenu

Merci d'avance

2 réponses

feuillou Messages postés 48 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 6 juillet 2007 1
20 sept. 2004 à 16:55
Salut,
tout d'abord, tu declares ta requete avec par exemple 1 variables :

CREATE PROCEDURE dbo.procedure1
(@var1 char(15))
AS
select * from [Matable]
where [Matable].[colonne1]=@var1
RETURN
GO

Si tu veux mettre plusieurs parametres, je pense qu'il faut faire un and ou un or... mais j'ai jamais essayé. De plus, tes variables doivent etre defini comme acceptant les valeurs null, au cas ou elles ne soit pas selectionnees dans tes checkboxs. Sinon, si tu n'y arive pas, tu devrais faire un IF sur tes checkboxs, pour appeler la bonne requete avec les bons parametre... Je sais pas si je t'ai aider mais esperons.

Feuillou
0
Arlequine Messages postés 18 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 18 février 2005
24 sept. 2004 à 15:33
Create Procedure Nom_procedure
@parametre1 numeric,
@parametre2 varchar(255),
@parametre3 varchar(255)

As

if (@parametre1 <> 0)
   begin
   if (@parametre2 is not null)
     begin
     if (@parametre3 is not null)
         select * from MATABLE where Macolonne = @parametre1 and Macolonne like '@parametre2' and Macolonne like '@parametre3'
     else
         select * from MATABLE where Macolonne = @parametre1 and Macolonne like '@parametre2'
     end
   else
     begin
     if (@parametre3 is not null)
       select * from MATABLE where  Macolonne = @parametre1 and Macolonne like '@parametre3'
     else
       select * from MATABLE where  Macolonne = @parametre1
     end
   end
else
   begin
   if (@parametre2 is not null)  
     begin
     if (@parametre3 is not null)  
        select * from MATABLE where Macolonne like '@parametre2' and Macolonne like '@parametre3'
     else
        select * from MATABLE where Macolonne like '@parametre2'
     end
   else
     begin
     if (@parametre3 is not null)
       select * from MATABLE where Macolonne like '@parametre3'
     else
       select * from MATABLE
     end
   end
GO


Voilà c pas trés simple, mais bon, je ne sais pas comment faire mieux ... (sauf si tu passes directement par le prog, sans passer par une procédure stocké.

Arlequine
0
Rejoignez-nous