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 :

Queries et substitution de paramètres


Sujet :

XMLRAD

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 57
    Points
    57
    Par défaut Queries et substitution de paramètres
    Bonjour,

    J'ai un petit souci avec les Queries.

    Dans un XmlGram classique (DBExtract), quand j'écris :

    SELECT * FROM {$TABLE}
    WHERE ...

    avec TABLE défini dans les Params du DBExtract et "valorisé" dans le context, pas de problème.

    Quand je fais la même chose avec une Query, ça ne fonctionne pas : j'ai l'impression qu'il n'y a pas de substitution et que la requête est transmis telle quelle. Et pourtant, quand je l'exécute dans l'environnement XMLRad, ça marche bien...

    Une idée ?


    Merci d'avance.

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Effectivement, dans la version courante de XMLRAD, les Queries ne bénéficient pas du traitement de faveur des DBExtracts

    En fait, pour XMLCLX, c'est le DBExtract qui prend à sa charge le remplacement des {$...} au sein du statement SQL, tandis que personne n'est là pour prendre en charge ce cas avec une Query simple.
    Il faut alors dans ton code opérer le remplacement manuellement, avec un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var
      Query: TDacQuery;
      S: XMLString;
    begin
      Query := XMLCollection.GetQueryComponent('qryTest');
      S := Query.SQL.Text;
      try
        Query.SQL.Text := ScanReplaceParams(Context, S, True);
        XMLCollection.DBExtract('qryTest');
      finally
        Query.SQL.Text := S;
      end;
    end;
    Il est obligatoire de restaurer le statement SQL de ta query après remplacement, sinon, au prochain appel, le statement contiendrait toujours les précédentes valeurs remplacées.

    La bonne nouvelle, c'est que le Framework nouveau prend ça à sa charge désormais ! (La mauvaise étant qu'on a pas de date de dispo... oh tristesse !
    Nicolas

  3. #3
    Membre expérimenté

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 520
    Points : 1 446
    Points
    1 446
    Par défaut
    Citation Envoyé par Nicolas.Cogi Voir le message
    La bonne nouvelle, c'est que le Framework nouveau prend ça à sa charge désormais ! (La mauvaise étant qu'on a pas de date de dispo... oh tristesse !
    Je confirme, on l'attend comme le messie ;-)
    .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

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 57
    Points
    57
    Par défaut
    Merci pour la réponse.

    Je crains malheureusement que l'exemple du code ne me soit pas d'une grande utilité : je suis avec Tomcat/Java, et j'ai peur que certaines primitives très... primitives (!) ne soient pas accessibles en Java (par exemple : (Query).SQL , ou le procédure ScanReplaceParams.

    Cela dit, si je me trompe, j'en serai ravi :-)

    Bonne journée.

  5. #5
    RDM
    RDM est déconnecté
    Membre émérite

    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
    Points : 2 927
    Points
    2 927
    Par défaut
    effectivement en Java tu vas avoir des problèmes pour récupérer le texte SQL du Query.

    pour le ScanReplaceParams c'est XMLCollection.scanReplaceParams

    la bonne nouvelle comme dirait Nico c'est que la prochaine version expose beaucoup plus de méthodes pour els langages comme JScript, Java et PHP et on pourra faire la meme chose qu'en Delphi !
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

Discussions similaires

  1. Query et passage de paramètres ?
    Par tenah34 dans le forum AS/400
    Réponses: 12
    Dernier message: 11/08/2009, 14h54
  2. Query.SQL.Text avec la valeur des paramètres
    Par Guile dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/02/2007, 11h13
  3. Réponses: 5
    Dernier message: 05/10/2006, 10h18
  4. [Regex] Suppression commentaire et substitution de paramètre
    Par BiM dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 31/08/2006, 18h03
  5. [Report] Ouvrir un report une query source paramétrée
    Par Julien Dufour dans le forum Access
    Réponses: 5
    Dernier message: 27/03/2006, 16h23

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