Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2006, 11h34   #1
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Par défaut Affichage résultat type Google (multipage multibase)

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
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 14h00   #2
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
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
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 15h08   #3
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
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
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 18h25   #4
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
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/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 20h53   #5
Membre régulier
 
Inscription : février 2005
Messages : 154
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 154
Points : 77
Points : 77
Envoyer un message via MSN à mchicoix
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
mchicoix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 00h32   #6
Membre éprouvé
 
Inscription : mars 2002
Messages : 516
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 516
Points : 483
Points : 483
Envoyer un message via MSN à Sylvain James
Citation:
Envoyé par rgarnier
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.
Pour compléter la réponse de renaud, il est tout à fait possible de définir dans ton XMLGram / DBExtract une requête du genre, en simplifiant un peu :

Code :
1
2
3
4
Select champ1, champ2 {$LIMIT_MYSQL}
From table1
Where mesconditions
{$LIMIT_ORACLE}
Ensuite dans le BeforeXMLInstruction, selon le moteur SQL ciblé, tu renseignes dans le context les templates properties : {$xxx}.

ex. :

Code :
1
2
3
4
5
6
7
if Driver="MySQL" then
  Context.SetValue("LIMIT_MYSQL", "LIMIT 10");
 
if Driver="ORACLE" then
  Context.SetValue("LIMIT_ORACLE", "AND ROWNUM < 10");
 
(Driver est à récupérer of course)
Sylvain
__________________
.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
Sylvain James est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 11h16   #7
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
Ok, c'est en effet plus propre.
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2006, 16h17   #8
Membre éclairé
 
Inscription : janvier 2003
Messages : 284
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 284
Points : 311
Points : 311
Envoyer un message via MSN à Nicolas.Cogi
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
Nicolas.Cogi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h45.


 
 
 
 
Partenaires

Hébergement Web