[SQL Server] Récupérer le resultat d'une requête en pages

Récupérer le resultat d'une requête en pages [SQL Server] - SQL/NoSQL - Programmation

Marsh Posté le 03-09-2003 à 14:24:14    

Salut,
Voilà je dois récup le résultat d'une grosse requête petit à petit (en plusieurs pages quoi) car trop de résultats fait péter l'appli VB  :o  
 
La base est sous SQL Server 2000 et je peux tout utiliser (procédure stocké, fonction, ...)
 
Et là, j'avoue que je galère un peu (mais pq ya pas de LIMIT et que le vieux TOP ki pue  :cry: )
 
Merci pour toute aide  
 
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 03-09-2003 à 14:24:14   

Reply

Marsh Posté le 03-09-2003 à 14:50:57    

Bon G ptet trouvé...  
 
Qq'1 C comment on fait une différence de 2 procédures stockées dans une 3e ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 03-09-2003 à 19:59:12    

:bounce:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 03-09-2003 à 20:17:23    

un petit up de soutien  :bounce:


---------------
http://membres.lycos.fr/axelfa
Reply

Marsh Posté le 03-09-2003 à 22:08:45    

Tchoupinette a écrit :

un petit up de soutien  :bounce:  


Merci...
Beh vi des fois kan T po là la journée je bosse  :o


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 04-09-2003 à 02:53:09    

Code :
  1. SELECT
  2. *
  3. FROM
  4. (
  5. SELECT TOP 20
  6.  *
  7. FROM
  8. (
  9.  SELECT TOP 60
  10.   champ_1,
  11.   champ_2,
  12.   champ_n,
  13.   champ_tri
  14.  FROM
  15.   table
  16.  ORDER BY
  17.   champ_tri DESC
  18. ) AS t1
  19. ORDER BY
  20.  champ_tri
  21. ) AS t2
  22. ORDER BY
  23. champ_tri DESC


 
Par exemple, la requete du mileu recupere 150 lignes, et on veut seulement 20 lignes à partir de la 40eme.  
Dans ce cas, le premier TOP = 20 (nombre de lignes à recuperer) et le second TOP = 60 (nombre de lignes à recuperer + nombre de lignes avant la premiere, donc ici 20 + 40)  
 
 
Ok, c'est absolumment immonde comme code, mais ca marche :D
Ya une autre solution beaucoup plus propre, c'est dans une procedure stocké de passer par une table temporaire, mais c'est plus lourd à mettre en place :p


Message édité par zozoll le 04-09-2003 à 02:56:25
Reply

Marsh Posté le 04-09-2003 à 09:36:55    

Merci de ta réponse  :jap:  
 
J'ai ça :  

SELECT * FROM ( SELECT TOP 10 *  FROM ( SELECT TOP 20 * FROM RECEPT_CPN  where  convert(int,CPN_NUM_ASSEDIC ) = 46  and CPN_DATE_TRT="11/08/2003" ))


 
et il me sort comme erreur :
 

Serveur : Msg 170, Niveau 15, État 1, Ligne 1
Ligne 1 : syntaxe incorrecte vers ')'.


 
Je précise que G po l'aide en ligne sur Sql Server pour une raison ki m'est inconnue  :cry:  
 
j'avais penser à faire un autre truc...
Imaginon que G des pages de 10 résultats et que je veux la 2e
 
on sélectionne les 20 1eres lignes
on sélectionne les 30 1eres lignes
 
et on fait un EXCEPT entre les 2
mais j'arrive pas à faire marcher ma requête d'except  :cry:  
 
 :hello:


Message édité par Poipoi le 04-09-2003 à 09:37:54

---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 04-09-2003 à 09:45:33    

oups G néglgé les tris... suis pas réveillé..
mais ça m'arrange pas trop, G 3 clés primaires  :cry:  
 
ya pas moyen avec ma méthode ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 04-09-2003 à 11:58:35    

Je connais pas la commande EXCEPT, donc je peux pas te dire :p
 
Sinon je viens d'y penser (pourquoi faire simple quand on peut faire compliqué), mais t'as essayé la pagination de ADO ?
C'est desastreux en terme de vitesse, mais c'est relativement simple à utiliser, une recherche de 30 sec sur google devrait te donner quelque reponses :)

Reply

Marsh Posté le 04-09-2003 à 12:58:26    

ZoZoll a écrit :

Je connais pas la commande EXCEPT, donc je peux pas te dire :p
 
Sinon je viens d'y penser (pourquoi faire simple quand on peut faire compliqué), mais t'as essayé la pagination de ADO ?
C'est desastreux en terme de vitesse, mais c'est relativement simple à utiliser, une recherche de 30 sec sur google devrait te donner quelque reponses :)


Tant pis C po grave, j'vais faire avec ta soluce... (C bon ça marche now :)) merci encore
 
Si qq'1 C comment on fait pour faire une exclusion en SQL sous Sql Server ça m'intéresse :D
(SQL made in micro$oft  :fou: )
 
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 04-09-2003 à 12:58:26   

Reply

Marsh Posté le 05-09-2003 à 09:10:44    

:bounce:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed