Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2881 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  exprimer une condition dans un fichier xsql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

exprimer une condition dans un fichier xsql

n°433252
hop le fou
Tu m'en diras tant
Posté le 19-06-2003 à 16:55:37  profilanswer
 

comment fait on pour exprimer une condition dans une requete dans une fichier xsql
en gros c pour traiter le résultat des données d'un formulaire que si elles ont été données (dans la clause where d'une requete select) étant données que les données sont facultatives
merci d avance

mood
Publicité
Posté le 19-06-2003 à 16:55:37  profilanswer
 

n°444898
hop le fou
Tu m'en diras tant
Posté le 01-07-2003 à 10:26:12  profilanswer
 

il est possible de faire une condition en utilisant les fonctions du sgbd (du genre decode)
mais le pb c que ca utilise souvent plus de ressources que necessaire
il reste également des choses impossibles a transcrire avec cette méthode
 
mon probleme est de passer de requetes écrites dans du php a des requetes écrites dans du xsql
en php :
 
<?
$req = "select att1,att2...
from table1,table2..."
if ($ECHCE<>"ALL" ) $req=$req.",table5,table6";
 
==> ce genre de chose ne pe pas s'écrire en sql(?)
 
$req=$req." where condition1,
and condition2...
if ($ECHCE<>"ALL" ) $req=$req." table5.att=table4.att"
 
...
on peut donc simuler cette derniere condition par des decode mais cela oblige la requete a faire bcp + de tests...
 
il n'y a pas de solutions plus efficace?

n°445180
hop le fou
Tu m'en diras tant
Posté le 01-07-2003 à 14:29:40  profilanswer
 

:bounce: up

n°455407
phnatomass
Je m'empare de ton esprit !!
Posté le 11-07-2003 à 15:32:33  profilanswer
 

$req = "select att1,att2...  
from table1,table2..."  
if ($ECHCE<>"ALL" ) $req=$req.",table5,table6";  
 
peut s'ecrire en XSQL
SELECT att1, att2, ..
from table1, table2, {@autres_tables}
 
autres_tables étant un parametre que tu auras passé à ta XSQL correspondant à tes conditions sur les tables .
Même principe pour tes conditions.
Si t'as plein de parametres dynamique comme ça ta requete ne sera pas trop comprehensible directement.
 
 
 

n°455466
hop le fou
Tu m'en diras tant
Posté le 11-07-2003 à 16:07:54  profilanswer
 

phnatomass a écrit :

$req = "select att1,att2...  
from table1,table2..."  
if ($ECHCE<>"ALL" ) $req=$req.",table5,table6";  
 
peut s'ecrire en XSQL
SELECT att1, att2, ..
from table1, table2, {@autres_tables}
 
autres_tables étant un parametre que tu auras passé à ta XSQL correspondant à tes conditions sur les tables .
Même principe pour tes conditions.
Si t'as plein de parametres dynamique comme ça ta requete ne sera pas trop comprehensible directement.
 


 
oui c sur que comme ca on peut faire plein de trucs
mais pour manipuler les parametres en xsl c la guerre (enfin je trouve)
ca va peut etre (surement) te paraitre stupide mais je n'arrive pas a les manipuler  :sweat:  
comment tu fais pour leur attribuer une valeur ailleur que pendant lors de leur déclaration ou grace à une structure d'entrée (text, combobox...)?

n°455502
phnatomass
Je m'empare de ton esprit !!
Posté le 11-07-2003 à 16:42:56  profilanswer
 

Comment appelles tu ton xsql ?
Tu peux faire du servlet chaining .
Les parametres de ta requete sont envoyés à une servlet dans laquelles ils sont traités ensuite ta servlet appele ta servlet xsql en passant les parametres que tu souhaites et qui ont été modifiés à ta sauce.
En java regarde du coté des RequestDispatcher
et de Request.setAttribute

n°455520
hop le fou
Tu m'en diras tant
Posté le 11-07-2003 à 16:53:28  profilanswer
 

phnatomass a écrit :

Comment appelles tu ton xsql ?
Tu peux faire du servlet chaining .
Les parametres de ta requete sont envoyés à une servlet dans laquelles ils sont traités ensuite ta servlet appele ta servlet xsql en passant les parametres que tu souhaites et qui ont été modifiés à ta sauce.
En java regarde du coté des RequestDispatcher
et de Request.setAttribute


 
je ne comprend pas vraiment ce que tu dis...
j appelle directement mes fichier xsql avec tomcat
donc aucun parametre n'a de valeur par defaut
ensuite je les donne en passant par les formulaires
ce n'est pas moi qui doit intégrer les pages à la totalité du site mais il me semble que la page devra etre rappelé ensuite par du jsp
 
et puis il me semble difficile de changer les parametres avant car je devrai les changer en fonction de ce que g récupéré dans le formulaire
en gros il faudrait que je puisse modifier la valeur de plusieurs de mes parametres lorsque g le droit d'en changer un...
mais je sais pas comment on fait (c possible?)

n°455551
phnatomass
Je m'empare de ton esprit !!
Posté le 11-07-2003 à 17:08:47  profilanswer
 

Citation :


j appelle directement mes fichier xsql avec tomcat  
donc aucun parametre n'a de valeur par defaut  


Ca veux dire que tu fais un truc du genre  
http://monserveur/maxsql?param1=va [...] m2=valeur2
 
C'est ça ?

n°455555
hop le fou
Tu m'en diras tant
Posté le 11-07-2003 à 17:12:02  profilanswer
 

phnatomass a écrit :

Citation :


j appelle directement mes fichier xsql avec tomcat  
donc aucun parametre n'a de valeur par defaut  


Ca veux dire que tu fais un truc du genre  
http://monserveur/maxsql?param1=va [...] m2=valeur2
 
C'est ça ?


oui sauf que je donne pas les parametres (mais je peux les donner)
ceux ci sont données par les valeurs données dans le formulaire

n°458233
phnatomass
Je m'empare de ton esprit !!
Posté le 15-07-2003 à 12:13:25  profilanswer
 

donc ton formulaire doit être posté à une jsp.
Dans la jsp tu manipules tes parametres comme tu veux en suite tu fais

Code :
  1. <jsp:include page="ton_fichier.xsql">
  2. <jsp:param name="param1" value="value1"/>
  3. <jsp:param name="param2" value="value2"/>
  4. </jsp:include>



Message édité par phnatomass le 15-07-2003 à 12:14:43
mood
Publicité
Posté le 15-07-2003 à 12:13:25  profilanswer
 

n°458235
hop le fou
Tu m'en diras tant
Posté le 15-07-2003 à 12:18:09  profilanswer
 

phnatomass a écrit :

donc ton formulaire doit être posté à une jsp.
Dans la jsp tu manipules tes parametres comme tu veux en suite tu fais

Code :
  1. <jsp:include page="ton_fichier.xsql">
  2. <jsp:param name="param1" value="value1"/>
  3. <jsp:param name="param2" value="value2"/>
  4. </jsp:include>


 


 
mais je ne manipule pas de jsp pour le moment... (apres peut etre)
g bien la meme chose dans ma feuille xsl:

<xsl:param name="NI" value="{@NI}"/>


je peux lui attribuer une valeur au début mais je ne sais pas comment la modifier ensuite selon les évenements...

n°460014
hop le fou
Tu m'en diras tant
Posté le 17-07-2003 à 11:00:21  profilanswer
 

bon ca progresse un peu
g compris comment manipuler les parametres en local en utilisant des templates
ca permet de faire 2 ou 3 trucs supplémentaires par rapport a avant
le probleme, c que ca ne fonctionne pas avec les parametres global mais les parametres utilisés dans la feuille xsql ne peuvent etre que global
donc je ne pe toujours pas utiliser de parametres directement dans ma requete...
 
qqun a une idée?

n°460054
hop le fou
Tu m'en diras tant
Posté le 17-07-2003 à 11:35:39  profilanswer
 

argghhh
 

C'est impossible: les paramêtres XSLT sont, comme les variables, constants et ne peuvent pas être modifiés.


 
cf: http://xmlfr.org/listes/xml-tech/2001/06/0512.html
 
qqun a une autre idée...
c a desesperer...

n°460564
hop le fou
Tu m'en diras tant
Posté le 17-07-2003 à 16:26:45  profilanswer
 

bon
j utilise des parametres locaux étant donné que je ne peux rien faire avec des parametres globaux
du coup je me retrouve avec une requete composée de petits morceaux :
select {@SelectTout}
from decode(&apos;{@BU}&apos;,NULL,{@FromInter},{@FromBuro})
 
 AND cd_br in ('11','12','13')
group by REFER_PR
order by REFER_PR
 
(cette requete fait normalement une cinquantaine de ligne)
 
mais le probleme (je suis obligé de faire mes conditions ici et non pas dans ma feuille de style étant donné que mes parametres sont locaux donc pas réutilisable dans ma feuille xsql sinon) c le fait que ma variable contienne plusieurs expression
le decode n'apprecie pas vraiment de trouver des virgules et autres joyeusetés au milieu de ses parametres, étant donné que mes parametres (ex:{@BU}) sont interprétés avant le decode...
 
euh ... une idée?

n°463464
phnatomass
Je m'empare de ton esprit !!
Posté le 21-07-2003 à 15:34:44  profilanswer
 

hop le fou a écrit :

bon
le decode n'apprecie pas vraiment de trouver des virgules et autres joyeusetés au milieu de ses parametres, étant donné que mes parametres (ex:{@BU}) sont interprétés avant le decode...
 
euh ... une idée?


C'est normale que tes param soient interprétés avant le decode.
C'est idiot ce que je dit mais tu dois fournir des parametres correctes pour que la requete sql resultante soit valable .
Sinon jk'avoue que j'ai du mal à comprendre le rapport en tes variable au niveau xsql et eu niveau xsl.
Pour info dans ton xsql tu peux passer un parametes (considerer comme une variable au sens xsl du terme) en faisant dans ton xsl :

Code :
  1. <xsql:set-stylesheet-param name="lavariable" value="{@lavariable"/>


puis dans ton xsl
tu déclares

Code :
  1. <xsl:param name="lavariable" select="@lavariable"/>


que tu utilises en faisant :
$lavariable
puis dans ton xsl pour le recuperere

n°463528
hop le fou
Tu m'en diras tant
Posté le 21-07-2003 à 16:05:50  profilanswer
 

phnatomass a écrit :


C'est normale que tes param soient interprétés avant le decode.
C'est idiot ce que je dit mais tu dois fournir des parametres correctes pour que la requete sql resultante soit valable .
Sinon jk'avoue que j'ai du mal à comprendre le rapport en tes variable au niveau xsql et eu niveau xsl.
Pour info dans ton xsql tu peux passer un parametes (considerer comme une variable au sens xsl du terme) en faisant dans ton xsl :

Code :
  1. <xsql:set-stylesheet-param name="lavariable" value="{@lavariable"/>


puis dans ton xsl
tu déclares

Code :
  1. <xsl:param name="lavariable" select="@lavariable"/>


que tu utilises en faisant :
$lavariable
puis dans ton xsl pour le recuperere


 
oui je sais que c interprété avant mais ca m aurait bien arrangé  :D  
en fait le truc c que c un peu a l'envers chez moi
la premiere fois que j'appelle ma feuille xsql, je ne passe pas de parametre : aucune donnée n'est affiché en ce qui concerne la base
en revanche dans la feuille de style xsl, il ya une autre partie qui consiste a afficher un formulaire
une fois celui ci rempli et validé, la feuille xsql va etre appelée avec pour parametre les données récupérées dans le dit formulaire puis la feuille de style pourra cette fois ci traiter et afficher les résultats renvoyés (et le formulaire evidemment pour qu on puisse enchainer les requetes)
d'ou le pb : ca ne m avance a rien de passer des parametres directement a l ouverture de ma feuille xsql
en revanche ce que j'aurais souhaité faire, c'est de créer/modifier un autre parametre correpondant au parametre récupéré dans mon formulaire de ma feuille de style...
or je n'ai pas trouvé comment faire ceci étant donné la nature des parametres des feuilles xsql


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  exprimer une condition dans un fichier xsql

 

Sujets relatifs
Buffer, fichier, read et fread[PHP] plantage analyse d'un fichier log, fichier trop gros ? ! ?
Problème d'intégrité de l'ASP dans un fichier XML[VBA] Dernière ligne d'un fichier texte.
taille d'un fichier en octets...Fichier d'installation (setup)
[VBA] Lire à partir d'un fichier texteEcriture de String ds un fichier, puis lecture et affichage ds une fen
[VBA Excel] Que renvoit open qd l'ouverture du fichier échoue?[C] Problème de lecture dans un fichier
Plus de sujets relatifs à : exprimer une condition dans un fichier xsql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR