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 06/02/2008, 16h41   #1
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
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.
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 18h44   #2
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
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 :
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
Nicolas.Cogi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 10h56   #3
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 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
Sylvain James est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 11h42   #4
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
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.
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2008, 13h55   #5
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
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/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h50.


 
 
 
 
Partenaires

Hébergement Web