|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 94 ![]() |
Bonjour,
Je développe une appli qui se doit d'être multibase (donc exit les LIMIT MySQL et TOP SQLServer). J'ai une requête qui me retourne 851146 résultats ce qui prend 30 sec pour générer le flux ! Je pensais que le but du champ "MaxRows" de XMLRAD était justement de limiter les résultats à la valeur passée. Or, je m'apercois que ce champ exécute en réalité la totalité de la requête et n'affiche que les n Maxrows champs voulus, autrement dis ce champ est quasi inutile puisqu'il n'émule pas le LIMIT MySQL ou le TOP SQLServer, et donc aucun gain de temps à l'affichage. Avez vous déjà recontré ce type de problème et si oui comment le résoudre ? Merci encore :-) NB |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() |
Le fait de ne renvoyer qu'une partie des enregs est géré par la BD, et donc, je ne pense pas qu'il y ait une autre solution que d'utiliser les TOP, LIMIt, ROWNUM des différentes BD que tu utilises
Nous, nous ajoutons par code ces mots clé en fonction de la bd utilisée par exemple, tu peux tester XMLApplication.DataSources.Values['DataSource/Driver'] qui va te donner le driver de BD, et donc te permettre de modifier ta requete en conséquence.
__________________
Renaud W2003 / XP /VISTA SQL SERVER / ORACLE ADO |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 94 ![]() |
Ok .. c'est vrai que contourner le pb pour arriver au même résultat est tout aussi pratique. Je ne connaissais pas ce type de test et je t'en remercie.
Bénit soit le forum XMLRAD :-) NB |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
Comme tu l'as vu, MaxRows ne limite que le nombre d'enregistrement extrait dans le XML et pas dans la requete. comme tu le comprend aussi, la syntaxe etant différente pour chaque serveur SQL (certains le le permettant tout seimpelment pas) XMLRAD ne peut pas le prendre en compte.
Le SQL n'est pas retravaillé par XMLRAD, il est envoyé tel quel.
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
D'accord avec toi RDM mais peut être que comme XMLRAD connait le moteur targetté on pouvait imaginer que cette fonctionnalité aurait put être inclus.
Bon allez on va pas demander à faire le café non plus Michel |
|
|
00
|
|
|
#6 | |||||
|
Membre éprouvé
![]() ![]() |
Citation:
Code :
ex. : Code :
__________________
.NET / ASP.NET MVC / Delphi / XMLRAD / XSL / Technos Web Mon Blog : http://blog.developpez.com/index.php?blog=89 Mes Articles : http://sjames.developpez.com/ Rubrique XMLRAD: http://xmlrad.developpez.com |
|||||
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() |
Ok, c'est en effet plus propre.
__________________
Renaud W2003 / XP /VISTA SQL SERVER / ORACLE ADO |
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() |
Pour finir de completer, on utilise la technique proposée par Sylvain, en utilisant des InitParams pour le contenu des LIMIT_MYSQL ou LIMIT_ORACLE.
Un bout de code place dans le Context la bonne valeur.
__________________
Nicolas |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com