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

MS SQL Server Discussion :

(pagination) limit x,y en t-sql


Sujet :

MS SQL Server

  1. #1
    Membre confirmé Avatar de jesslegende
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut (pagination) limit x,y en t-sql
    bonjour,
    je souhaite créer une table avec pagination sous asp.net et sql server sans passer par les controls datagrid, alors je veux savoir s'il y a une façon de le faire comme on a l'habitude de le faire en php/mysql c'est à dire en utilisant limit ??

    merci pour votre aide.

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 162
    Par défaut
    bonjour

    l'équivalent de limit est: Top

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    --Top ne peux avoir qu'un seul chiffre après: Top x
    select Top 5  Name from employees
    pour faire pagination sans passer par DataGrid, je te propose de récuperer tous les enregistrements pour éviter les va et viens entre la base et le client, stocker ton résultat dans une session et à la fin de tu applique la pagination sur la variable session

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    LIMIT n'existe pas en SQL. TOP est spécifique à MS SQL Server et n'existe pas non plus en SQL. Ces deux gadgets sont d'une haute stupidité car ils peuvent vous conduire à des résultats faux !

    Le seule moyen de faire de la pagination correctement est d'utiliser les fonctions de fenêtrage de la catégorie "ranking", qui font partie de la norme SQL (MySQL ne les implémente pas car son SQL à plus de 13 ans de retard !!!!)
    lisez l'article que j'ai écrit sur les fonctions de fenêtrage : http://sqlpro.developpez.com/article...clause-window/

    Et pour un exemple de pagination : http://sqlpro.developpez.com/sqlserv...page=sql#LII-G (deux derniers exemples).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    pour faire pagination sans passer par DataGrid, je te propose de récuperer tous les enregistrements pour éviter les va et viens entre la base et le client, stocker ton résultat dans une session et à la fin de tu applique la pagination sur la variable session
    Personellement je déconseille cette méthode. Tant que le volume de données est infime cela peut marcher correctement mais dès que le volume de données devient important des problèmes de performances évidents apparaîtront. Dans ce 2eme cas il vaut mieux charger seulement le jeu de données qui nous intéresse que de tout charger et faire de la pagination dans le datagrid.

    ++

  5. #5
    Membre confirmé Avatar de jesslegende
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut
    merci pour ton interventions et tes conseils SQLpro je trouve tes liens très riches en informations merci beaucoup,
    pareil pour vous nabil et mikedavem je vous remercie tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/10/2011, 11h07
  2. [phpBB] Paginer les résultats d'une requette Sql vers phpBB2 template
    Par okoweb dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/06/2010, 12h34
  3. limite cadence et nombres insertions sql serveur
    Par Yogy dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 13/01/2009, 11h02
  4. Limite du nombre de processeurs & SQL 2005 Standard
    Par kingrvb dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/12/2006, 15h26
  5. Limitation de colonnes TIMESTAMP dans SQL Server
    Par eguilloteau dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/06/2005, 11h05

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