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

XMLRAD Discussion :

Affichage résultat type Google (multipage multibase)


Sujet :

XMLRAD

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 94
    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

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2003
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 214
    Par défaut
    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.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 94
    Par défaut
    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

  4. #4
    RDM
    RDM est déconnecté
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par défaut
    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.

  5. #5
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Par défaut
    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

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    520
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 520
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2003
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 214
    Par défaut
    Ok, c'est en effet plus propre.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Par défaut
    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.

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

Discussions similaires

  1. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  2. affichage de résultat par google
    Par sws2008 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/11/2008, 20h15
  3. Réponses: 1
    Dernier message: 11/05/2006, 16h37
  4. Affichage résultat de requête dans un champ
    Par dj-julio dans le forum WinDev
    Réponses: 1
    Dernier message: 18/01/2006, 10h51
  5. [struts][logic]: résultat affiché en multipage
    Par shakur dans le forum Struts 1
    Réponses: 2
    Dernier message: 14/06/2005, 15h57

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