Est-il possible de créer une procédure stockée ayant de 1 à n critères de
recherche ?
Voilà mon cas :
Je dois rechercher des entreprises via un formulaire qui comporte "N"
rubriques saisissables:
Le numéro Siren
La Raison sociale
Le code postal
Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien
"N"champs saisis .
Une procédure stockée est-elle possible ?
Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
bruno reiter [MVP]
généralement, le plus efficace dans ce cas est de passer les 4 params avec null quand non utilisé puis dans la proc en début remplacer les params par début et fin (égaux si le param est là, mini et maxi sinon) et mettre between dans le where
br
"pascale.eric" wrote in message news:cmrdv4$hdd$
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de recherche ?e cas
Voilà mon cas : Je dois rechercher des entreprises via un formulaire qui comporte "N" rubriques saisissables:
Le numéro Siren La Raison sociale Le code postal Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien "N"champs saisis . Une procédure stockée est-elle possible ? Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
D'avance, merci
Pascale
généralement, le plus efficace dans ce cas est de passer les 4 params avec
null quand non utilisé
puis dans la proc en début remplacer les params par début et fin (égaux si
le param est là, mini et maxi sinon)
et mettre between dans le where
br
"pascale.eric" <pascale.eric@infonie.fr> wrote in message
news:cmrdv4$hdd$1@news.tiscali.fr...
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de
recherche ?e cas
Voilà mon cas :
Je dois rechercher des entreprises via un formulaire qui comporte "N"
rubriques saisissables:
Le numéro Siren
La Raison sociale
Le code postal
Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien
"N"champs saisis .
Une procédure stockée est-elle possible ?
Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
généralement, le plus efficace dans ce cas est de passer les 4 params avec null quand non utilisé puis dans la proc en début remplacer les params par début et fin (égaux si le param est là, mini et maxi sinon) et mettre between dans le where
br
"pascale.eric" wrote in message news:cmrdv4$hdd$
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de recherche ?e cas
Voilà mon cas : Je dois rechercher des entreprises via un formulaire qui comporte "N" rubriques saisissables:
Le numéro Siren La Raison sociale Le code postal Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien "N"champs saisis . Une procédure stockée est-elle possible ? Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
D'avance, merci
Pascale
Fred BROUARD
bruno reiter [MVP] a écrit:
généralement, le plus efficace dans ce cas est de passer les 4 params avec null quand non utilisé puis dans la proc en début remplacer les params par début et fin (égaux si le param est là, mini et maxi sinon) et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren) AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale) ...
Ce sera plus performant...
A +
br
"pascale.eric" wrote in message news:cmrdv4$hdd$
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de recherche ?e cas
Voilà mon cas : Je dois rechercher des entreprises via un formulaire qui comporte "N" rubriques saisissables:
Le numéro Siren La Raison sociale Le code postal Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien "N"champs saisis . Une procédure stockée est-elle possible ? Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
D'avance, merci
Pascale
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
bruno reiter [MVP] a écrit:
généralement, le plus efficace dans ce cas est de passer les 4 params avec
null quand non utilisé
puis dans la proc en début remplacer les params par début et fin (égaux si
le param est là, mini et maxi sinon)
et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren)
AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale)
...
Ce sera plus performant...
A +
br
"pascale.eric" <pascale.eric@infonie.fr> wrote in message
news:cmrdv4$hdd$1@news.tiscali.fr...
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de
recherche ?e cas
Voilà mon cas :
Je dois rechercher des entreprises via un formulaire qui comporte "N"
rubriques saisissables:
Le numéro Siren
La Raison sociale
Le code postal
Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien
"N"champs saisis .
Une procédure stockée est-elle possible ?
Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
D'avance, merci
Pascale
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
généralement, le plus efficace dans ce cas est de passer les 4 params avec null quand non utilisé puis dans la proc en début remplacer les params par début et fin (égaux si le param est là, mini et maxi sinon) et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren) AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale) ...
Ce sera plus performant...
A +
br
"pascale.eric" wrote in message news:cmrdv4$hdd$
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de recherche ?e cas
Voilà mon cas : Je dois rechercher des entreprises via un formulaire qui comporte "N" rubriques saisissables:
Le numéro Siren La Raison sociale Le code postal Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien "N"champs saisis . Une procédure stockée est-elle possible ? Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
D'avance, merci
Pascale
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
bruno reiter [MVP]
Fred,
théoriquement c'est mieux quoique ça ne résoud pas les params de date et par ex un nom passé en param comme BROUAR%
mais en pratique, le coalesce peut faire créer un plan d'exécution "pourri", avec utilisation de mauvais index : dans une proc, j'ai avec du coalesce 1.062.450 reads pour 4906 ms en cpu , avec du between 316 reads pour 16 ms en cpu
br
"Fred BROUARD" wrote in message news:#
bruno reiter [MVP] a écrit: > généralement, le plus efficace dans ce cas est de passer les 4 params
avec
> null quand non utilisé > puis dans la proc en début remplacer les params par début et fin (égaux
si
> le param est là, mini et maxi sinon) > et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren) AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale) ...
Ce sera plus performant...
A +
> > br > > "pascale.eric" wrote in message > news:cmrdv4$hdd$ > >>Bonjour, >> >>Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
>>recherche ?e cas >> >>Voilà mon cas : >>Je dois rechercher des entreprises via un formulaire qui comporte "N" >>rubriques saisissables: >> >>Le numéro Siren >>La Raison sociale >>Le code postal >>Le téléphone >> >>etc... >> >> >>La recherche dans la base peut se faire avec un seul critère saisi ou
bien
>>"N"champs saisis . >>Une procédure stockée est-elle possible ? >>Dois-je imbriquer plusieurs procédures stockées dans une méta procédure
?
>> >>D'avance, merci >> >>Pascale >> >> > > >
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Fred,
théoriquement c'est mieux quoique ça ne résoud pas les params de date et par
ex un nom passé en param comme BROUAR%
mais en pratique, le coalesce peut faire créer un plan d'exécution "pourri",
avec utilisation de mauvais index : dans une proc, j'ai avec du coalesce
1.062.450 reads pour 4906 ms en cpu , avec du between 316 reads pour 16 ms
en cpu
br
"Fred BROUARD" <brouardf@club-internet.fr> wrote in message
news:#A9A3UwxEHA.4028@TK2MSFTNGP15.phx.gbl...
bruno reiter [MVP] a écrit:
> généralement, le plus efficace dans ce cas est de passer les 4 params
avec
> null quand non utilisé
> puis dans la proc en début remplacer les params par début et fin (égaux
si
> le param est là, mini et maxi sinon)
> et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren)
AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale)
...
Ce sera plus performant...
A +
>
> br
>
> "pascale.eric" <pascale.eric@infonie.fr> wrote in message
> news:cmrdv4$hdd$1@news.tiscali.fr...
>
>>Bonjour,
>>
>>Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
>>recherche ?e cas
>>
>>Voilà mon cas :
>>Je dois rechercher des entreprises via un formulaire qui comporte "N"
>>rubriques saisissables:
>>
>>Le numéro Siren
>>La Raison sociale
>>Le code postal
>>Le téléphone
>>
>>etc...
>>
>>
>>La recherche dans la base peut se faire avec un seul critère saisi ou
bien
>>"N"champs saisis .
>>Une procédure stockée est-elle possible ?
>>Dois-je imbriquer plusieurs procédures stockées dans une méta procédure
?
>>
>>D'avance, merci
>>
>>Pascale
>>
>>
>
>
>
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
théoriquement c'est mieux quoique ça ne résoud pas les params de date et par ex un nom passé en param comme BROUAR%
mais en pratique, le coalesce peut faire créer un plan d'exécution "pourri", avec utilisation de mauvais index : dans une proc, j'ai avec du coalesce 1.062.450 reads pour 4906 ms en cpu , avec du between 316 reads pour 16 ms en cpu
br
"Fred BROUARD" wrote in message news:#
bruno reiter [MVP] a écrit: > généralement, le plus efficace dans ce cas est de passer les 4 params
avec
> null quand non utilisé > puis dans la proc en début remplacer les params par début et fin (égaux
si
> le param est là, mini et maxi sinon) > et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren) AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale) ...
Ce sera plus performant...
A +
> > br > > "pascale.eric" wrote in message > news:cmrdv4$hdd$ > >>Bonjour, >> >>Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
>>recherche ?e cas >> >>Voilà mon cas : >>Je dois rechercher des entreprises via un formulaire qui comporte "N" >>rubriques saisissables: >> >>Le numéro Siren >>La Raison sociale >>Le code postal >>Le téléphone >> >>etc... >> >> >>La recherche dans la base peut se faire avec un seul critère saisi ou
bien
>>"N"champs saisis . >>Une procédure stockée est-elle possible ? >>Dois-je imbriquer plusieurs procédures stockées dans une méta procédure
?
>> >>D'avance, merci >> >>Pascale >> >> > > >
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Fred BROUARD
cela dépend effectivement ou tu place le coalesce. Dans un where tel que celui là en membre doit de la comparason, il ne devrait pas y avoir trop de problème.
A +
bruno reiter [MVP] a écrit:
Fred,
théoriquement c'est mieux quoique ça ne résoud pas les params de date et par ex un nom passé en param comme BROUAR%
mais en pratique, le coalesce peut faire créer un plan d'exécution "pourri", avec utilisation de mauvais index : dans une proc, j'ai avec du coalesce 1.062.450 reads pour 4906 ms en cpu , avec du between 316 reads pour 16 ms en cpu
br
"Fred BROUARD" wrote in message news:#
bruno reiter [MVP] a écrit:
généralement, le plus efficace dans ce cas est de passer les 4 params
avec
null quand non utilisé puis dans la proc en début remplacer les params par début et fin (égaux
si
le param est là, mini et maxi sinon) et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren) AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale) ...
Ce sera plus performant...
A +
br
"pascale.eric" wrote in message news:cmrdv4$hdd$
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
recherche ?e cas
Voilà mon cas : Je dois rechercher des entreprises via un formulaire qui comporte "N" rubriques saisissables:
Le numéro Siren La Raison sociale Le code postal Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou
bien
"N"champs saisis . Une procédure stockée est-elle possible ? Dois-je imbriquer plusieurs procédures stockées dans une méta procédure
?
D'avance, merci
Pascale
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
cela dépend effectivement ou tu place le coalesce. Dans un where tel que celui
là en membre doit de la comparason, il ne devrait pas y avoir trop de problème.
A +
bruno reiter [MVP] a écrit:
Fred,
théoriquement c'est mieux quoique ça ne résoud pas les params de date et par
ex un nom passé en param comme BROUAR%
mais en pratique, le coalesce peut faire créer un plan d'exécution "pourri",
avec utilisation de mauvais index : dans une proc, j'ai avec du coalesce
1.062.450 reads pour 4906 ms en cpu , avec du between 316 reads pour 16 ms
en cpu
br
"Fred BROUARD" <brouardf@club-internet.fr> wrote in message
news:#A9A3UwxEHA.4028@TK2MSFTNGP15.phx.gbl...
bruno reiter [MVP] a écrit:
généralement, le plus efficace dans ce cas est de passer les 4 params
avec
null quand non utilisé
puis dans la proc en début remplacer les params par début et fin (égaux
si
le param est là, mini et maxi sinon)
et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren)
AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale)
...
Ce sera plus performant...
A +
br
"pascale.eric" <pascale.eric@infonie.fr> wrote in message
news:cmrdv4$hdd$1@news.tiscali.fr...
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
recherche ?e cas
Voilà mon cas :
Je dois rechercher des entreprises via un formulaire qui comporte "N"
rubriques saisissables:
Le numéro Siren
La Raison sociale
Le code postal
Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou
bien
"N"champs saisis .
Une procédure stockée est-elle possible ?
Dois-je imbriquer plusieurs procédures stockées dans une méta procédure
?
D'avance, merci
Pascale
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
cela dépend effectivement ou tu place le coalesce. Dans un where tel que celui là en membre doit de la comparason, il ne devrait pas y avoir trop de problème.
A +
bruno reiter [MVP] a écrit:
Fred,
théoriquement c'est mieux quoique ça ne résoud pas les params de date et par ex un nom passé en param comme BROUAR%
mais en pratique, le coalesce peut faire créer un plan d'exécution "pourri", avec utilisation de mauvais index : dans une proc, j'ai avec du coalesce 1.062.450 reads pour 4906 ms en cpu , avec du between 316 reads pour 16 ms en cpu
br
"Fred BROUARD" wrote in message news:#
bruno reiter [MVP] a écrit:
généralement, le plus efficace dans ce cas est de passer les 4 params
avec
null quand non utilisé puis dans la proc en début remplacer les params par début et fin (égaux
si
le param est là, mini et maxi sinon) et mettre between dans le where
ou mieux bruno :
WHERE MuméroSiren = COALESCE(@ParamSiren, MuméroSiren) AND RaisonSociale = COALESCE(@ParamRS, RaisonSociale) ...
Ce sera plus performant...
A +
br
"pascale.eric" wrote in message news:cmrdv4$hdd$
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
recherche ?e cas
Voilà mon cas : Je dois rechercher des entreprises via un formulaire qui comporte "N" rubriques saisissables:
Le numéro Siren La Raison sociale Le code postal Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou
bien
"N"champs saisis . Une procédure stockée est-elle possible ? Dois-je imbriquer plusieurs procédures stockées dans une méta procédure
?
D'avance, merci
Pascale
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Med Bouchenafa
L'approche de Bruno et Fred ne permet pas de répondre au cas où l'on veut faire une recherche avec une valeur de paramètre réellement NULL Une autre façon classique de traiter ce problème est de construire dynamiquement la requête dans la procédure stockée
Quelque chose comme ceci SET @strQL = ' 1 = 1'
IF @param1 IS NULL SET @strQL = @strSQL + 'AND param1 IS NULL ELSE IF @param1 <> 'Vide' SET @strQL = @strSQL + 'AND param1 = @param1
IF @param2 IS NULL SET @strQL = @strSQL + 'AND param2 IS NULL ELSE IF @param2 <> 'Vide' SET @strQL = @strSQL + 'AND param2 = @param2
et à la fin lancer la requêtre par :
EXEC 'SELECT.......FROM....' + @strQL
Bien cordialement Med Bouchenafa
"pascale.eric" wrote in message news:cmrdv4$hdd$
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de recherche ?
Voilà mon cas : Je dois rechercher des entreprises via un formulaire qui comporte "N" rubriques saisissables:
Le numéro Siren La Raison sociale Le code postal Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien "N"champs saisis . Une procédure stockée est-elle possible ? Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
D'avance, merci
Pascale
L'approche de Bruno et Fred ne permet pas de répondre au cas où l'on veut
faire une recherche avec une valeur de paramètre réellement NULL
Une autre façon classique de traiter ce problème est de construire
dynamiquement la requête dans la procédure stockée
Quelque chose comme ceci
SET @strQL = ' 1 = 1'
IF @param1 IS NULL
SET @strQL = @strSQL + 'AND param1 IS NULL
ELSE IF @param1 <> 'Vide'
SET @strQL = @strSQL + 'AND param1 = @param1
IF @param2 IS NULL
SET @strQL = @strSQL + 'AND param2 IS NULL
ELSE IF @param2 <> 'Vide'
SET @strQL = @strSQL + 'AND param2 = @param2
et à la fin lancer la requêtre par :
EXEC 'SELECT.......FROM....' + @strQL
Bien cordialement
Med Bouchenafa
"pascale.eric" <pascale.eric@infonie.fr> wrote in message
news:cmrdv4$hdd$1@news.tiscali.fr...
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de
recherche ?
Voilà mon cas :
Je dois rechercher des entreprises via un formulaire qui comporte "N"
rubriques saisissables:
Le numéro Siren
La Raison sociale
Le code postal
Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien
"N"champs saisis .
Une procédure stockée est-elle possible ?
Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
L'approche de Bruno et Fred ne permet pas de répondre au cas où l'on veut faire une recherche avec une valeur de paramètre réellement NULL Une autre façon classique de traiter ce problème est de construire dynamiquement la requête dans la procédure stockée
Quelque chose comme ceci SET @strQL = ' 1 = 1'
IF @param1 IS NULL SET @strQL = @strSQL + 'AND param1 IS NULL ELSE IF @param1 <> 'Vide' SET @strQL = @strSQL + 'AND param1 = @param1
IF @param2 IS NULL SET @strQL = @strSQL + 'AND param2 IS NULL ELSE IF @param2 <> 'Vide' SET @strQL = @strSQL + 'AND param2 = @param2
et à la fin lancer la requêtre par :
EXEC 'SELECT.......FROM....' + @strQL
Bien cordialement Med Bouchenafa
"pascale.eric" wrote in message news:cmrdv4$hdd$
Bonjour,
Est-il possible de créer une procédure stockée ayant de 1 à n critères de recherche ?
Voilà mon cas : Je dois rechercher des entreprises via un formulaire qui comporte "N" rubriques saisissables:
Le numéro Siren La Raison sociale Le code postal Le téléphone
etc...
La recherche dans la base peut se faire avec un seul critère saisi ou bien "N"champs saisis . Une procédure stockée est-elle possible ? Dois-je imbriquer plusieurs procédures stockées dans une méta procédure ?
D'avance, merci
Pascale
bruno reiter [MVP]
encore une fois Med c'est bien et pratique mais c'est souvent mortel au niveau des perfs
br
"Med Bouchenafa" wrote in message news:OxrZW$
L'approche de Bruno et Fred ne permet pas de répondre au cas où l'on veut faire une recherche avec une valeur de paramètre réellement NULL Une autre façon classique de traiter ce problème est de construire dynamiquement la requête dans la procédure stockée
Quelque chose comme ceci SET @strQL = ' 1 = 1'
IF @param1 IS NULL SET @strQL = @strSQL + 'AND param1 IS NULL ELSE IF @param1 <> 'Vide' SET @strQL = @strSQL + 'AND param1 = @param1
IF @param2 IS NULL SET @strQL = @strSQL + 'AND param2 IS NULL ELSE IF @param2 <> 'Vide' SET @strQL = @strSQL + 'AND param2 = @param2
et à la fin lancer la requêtre par :
EXEC 'SELECT.......FROM....' + @strQL
Bien cordialement Med Bouchenafa
"pascale.eric" wrote in message news:cmrdv4$hdd$ > Bonjour, > > Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
> recherche ? > > Voilà mon cas : > Je dois rechercher des entreprises via un formulaire qui comporte "N" > rubriques saisissables: > > Le numéro Siren > La Raison sociale > Le code postal > Le téléphone > > etc... > > > La recherche dans la base peut se faire avec un seul critère saisi ou
bien
> "N"champs saisis . > Une procédure stockée est-elle possible ? > Dois-je imbriquer plusieurs procédures stockées dans une méta procédure
?
> > D'avance, merci > > Pascale > >
encore une fois Med c'est bien et pratique mais c'est souvent mortel au
niveau des perfs
br
"Med Bouchenafa" <com.hotmail@bouchenafa> wrote in message
news:OxrZW$xxEHA.748@TK2MSFTNGP14.phx.gbl...
L'approche de Bruno et Fred ne permet pas de répondre au cas où l'on veut
faire une recherche avec une valeur de paramètre réellement NULL
Une autre façon classique de traiter ce problème est de construire
dynamiquement la requête dans la procédure stockée
Quelque chose comme ceci
SET @strQL = ' 1 = 1'
IF @param1 IS NULL
SET @strQL = @strSQL + 'AND param1 IS NULL
ELSE IF @param1 <> 'Vide'
SET @strQL = @strSQL + 'AND param1 = @param1
IF @param2 IS NULL
SET @strQL = @strSQL + 'AND param2 IS NULL
ELSE IF @param2 <> 'Vide'
SET @strQL = @strSQL + 'AND param2 = @param2
et à la fin lancer la requêtre par :
EXEC 'SELECT.......FROM....' + @strQL
Bien cordialement
Med Bouchenafa
"pascale.eric" <pascale.eric@infonie.fr> wrote in message
news:cmrdv4$hdd$1@news.tiscali.fr...
> Bonjour,
>
> Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
> recherche ?
>
> Voilà mon cas :
> Je dois rechercher des entreprises via un formulaire qui comporte "N"
> rubriques saisissables:
>
> Le numéro Siren
> La Raison sociale
> Le code postal
> Le téléphone
>
> etc...
>
>
> La recherche dans la base peut se faire avec un seul critère saisi ou
bien
> "N"champs saisis .
> Une procédure stockée est-elle possible ?
> Dois-je imbriquer plusieurs procédures stockées dans une méta procédure
encore une fois Med c'est bien et pratique mais c'est souvent mortel au niveau des perfs
br
"Med Bouchenafa" wrote in message news:OxrZW$
L'approche de Bruno et Fred ne permet pas de répondre au cas où l'on veut faire une recherche avec une valeur de paramètre réellement NULL Une autre façon classique de traiter ce problème est de construire dynamiquement la requête dans la procédure stockée
Quelque chose comme ceci SET @strQL = ' 1 = 1'
IF @param1 IS NULL SET @strQL = @strSQL + 'AND param1 IS NULL ELSE IF @param1 <> 'Vide' SET @strQL = @strSQL + 'AND param1 = @param1
IF @param2 IS NULL SET @strQL = @strSQL + 'AND param2 IS NULL ELSE IF @param2 <> 'Vide' SET @strQL = @strSQL + 'AND param2 = @param2
et à la fin lancer la requêtre par :
EXEC 'SELECT.......FROM....' + @strQL
Bien cordialement Med Bouchenafa
"pascale.eric" wrote in message news:cmrdv4$hdd$ > Bonjour, > > Est-il possible de créer une procédure stockée ayant de 1 à n critères
de
> recherche ? > > Voilà mon cas : > Je dois rechercher des entreprises via un formulaire qui comporte "N" > rubriques saisissables: > > Le numéro Siren > La Raison sociale > Le code postal > Le téléphone > > etc... > > > La recherche dans la base peut se faire avec un seul critère saisi ou
bien
> "N"champs saisis . > Une procédure stockée est-elle possible ? > Dois-je imbriquer plusieurs procédures stockées dans une méta procédure