Requette parametrée

Signaler
Messages postés
13
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
18 septembre 2004
-
Messages postés
18
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
18 février 2005
-
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

Messages postés
48
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
6 juillet 2007
1
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
Messages postés
18
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
18 février 2005

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