Procédure stockée et paramètres

Le
Kati
Bonjour tous,

Je sui sense mettre au point une procdure stocke, mais
trs honntement, je vois pas trop comment m'y prendre

Je voudrais mettre en place un systme d'archives.
Je dois afficher 6 archives par page.
Je ne dois pas prendre les 5 archives les plus rcentes
(elles ont un affichage diffrent)

Je voudrais que ma procdure stocke puisse prendre en
paramtre mon numro de page d'archive et le nombre
d'archives rcuprer.

En gros, je voudrais quelque chose de ce genre :

ALTER Procedure ArchivesNews

AS
SELECT TOP 6 // ici un paramtre nombre la place du 6
id,
titre,
resume

FROM news
WHERE id NOT IN
(
SELECT TOP (5 + NumrodePage*6)
id
FROM news
ORDER BY date_news DESC
)

ORDER BY date_news DESC

Comment je peux faire pour passer mon numro de page en
paramtre ?
Est-il possible aussi de paramtrer le 6 (du TOP 6), en
imaginant que plus tard, on change de prsentation, et
qu'on ne mette plus que 4 archives par exemple ?

Merci d'avance.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred BROUARD
Le #11722421
Il n'est pas possible de placer un paramètre de requête autrement qu'en
partie droite d'un opérateur.

En revanche il est possible de faire des requêtes dynamique.
Cela consiste à construire une requête à l'aide de simples chaines de
caractères assemblées, puis de l'exécuter.

Exemple :

CREATE PROCEDURE SP_MYPROC @N INT, @LAST_ID INT
AS

DECLARE @SQL VARCHAR(8000)

IF @LAST_ID IS NULL
SELECT @LAST_ID = MIN(id)-1 FROM news

SET @SQL = 'SELECT TOP ' + CAST(@N AS VARCHAR(32))
+' id, titre, resume '
+ 'FROM news '
+ 'WHERE id > ' + CAST(@LAST_ID AS VARVCHAR(32))
+ 'ORDER BY date_news DESC '

EXEC(@SQL)

A +

Kati a écrit:
Bonjour à tous,

Je sui sensée mettre au point une procédure stockée, mais
très honnêtement, je vois pas trop comment m'y prendre...

Je voudrais mettre en place un système d'archives.
Je dois afficher 6 archives par page.
Je ne dois pas prendre les 5 archives les plus récentes
(elles ont un affichage différent)

Je voudrais que ma procédure stockée puisse prendre en
paramètre mon numéro de page d'archive et le nombre
d'archives à récupérer.

En gros, je voudrais quelque chose de ce genre :

ALTER Procedure ArchivesNews

AS
SELECT TOP 6 // ici un paramètre nombre à la place du 6
id,
titre,
resume

FROM news
WHERE id NOT IN
(
SELECT TOP (5 + NumérodePage*6)
id
FROM news
ORDER BY date_news DESC
)

ORDER BY date_news DESC

Comment je peux faire pour passer mon numéro de page en
paramètre ?
Est-il possible aussi de paramétrer le 6 (du TOP 6), en
imaginant que plus tard, on change de présentation, et
qu'on ne mette plus que 4 archives par exemple ?

Merci d'avance.




--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / 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
****************** mailto: ******************
Publicité
Poster une réponse
Anonyme