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 05/05/2003, 12h09   #1
Membre chevronné
 
Philippe
Inscription : avril 2002
Messages : 456
Détails du profil
Informations personnelles :
Nom : Philippe
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 456
Points : 688
Points : 688
Envoyer un message via ICQ à Ph. B.
Par défaut Requêtes imbriquées ?

Bonjour,

Avec XMLRad, un serveur SQL 2000 sp3, un provider SQLOLEDB, est ce que je peux écrire une requête de la forme :
Code :
1
2
3
4
5
SELECT SCT_ID, SCT_CODE, SCT_LIBELLE,
       (SELECT COUNT(*) FROM T_SUCCURSALE_SCC 
                   WHERE SCT_ID = SCT.SCT_ID) AS SCT_NB_ETS
FROM TR_SECTEUR_SCT SCT
WHERE SCT.RCO_ID = :RCO_ID
J'obtiens une erreur alors que la requête fonctionne depuis l'analyseur de requête de SQLServer...

Philippe.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2003, 13h10   #2
Membre chevronné
 
Philippe
Inscription : avril 2002
Messages : 456
Détails du profil
Informations personnelles :
Nom : Philippe
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 456
Points : 688
Points : 688
Envoyer un message via ICQ à Ph. B.
Laissez tomber !
Je ne sais pas pourquoi, mais j'ai eu un souci sur mon poste de dév., j'ai du redémarrer IIS, puis XMLRad, et la, miracle, la requête donne le résultat attendu... C'est ...

Philippe.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2003, 14h23   #3
Membre chevronné
 
Philippe
Inscription : avril 2002
Messages : 456
Détails du profil
Informations personnelles :
Nom : Philippe
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 456
Points : 688
Points : 688
Envoyer un message via ICQ à Ph. B.
Bon, finalement...
C'est peut etre parce que je suis malade mais :

La requete suivante fonctionne:
Code :
1
2
3
4
5
SELECT SCT_ID, SCT_CODE, SCT_LIBELLE,
       (SELECT COUNT(*) FROM T_SUCCURSALE_SCC 
        WHERE SCT_ID = SCT.SCT_ID) AS SCT_NB_ETS
FROM TR_SECTEUR_SCT SCT
WHERE RCO_ID = 8
Mais pas celle la:
Code :
1
2
3
4
5
SELECT SCT_ID, SCT_CODE, SCT_LIBELLE,
       (SELECT COUNT(*) FROM T_SUCCURSALE_SCC 
        WHERE SCT_ID = SCT.SCT_ID) AS SCT_NB_ETS
FROM TR_SECTEUR_SCT SCT
WHERE RCO_ID = :RCO_ID
RCO_ID est bien déclaré dans les params en integer et même avec la valeur 8 par défaut...

Qu'en pensez vous ? la fièvre ? je suis nul ? autre chose ?

Philippe.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2003, 10h13   #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
1/ les requêtes imbriquées c'est pas bien... ;-)
2/ effectivement j'arrive a reproduire le problème de mon coté avec le SQL explorer de XMLRAD:

Code :
1
2
3
SELECT pub_id, pub_name, (SELECT Count(*) FROM publishers) AS pub_count
FROM publishers
WHERE pub_id = '0736'
fonctionne mais pas

Code :
1
2
3
SELECT pub_id, pub_name, (SELECT Count(*) FROM publishers) AS pub_count
FROM publishers
WHERE pub_id = :pub_id
__________________
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 06/05/2003, 10h28   #5
Membre chevronné
 
Philippe
Inscription : avril 2002
Messages : 456
Détails du profil
Informations personnelles :
Nom : Philippe
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 456
Points : 688
Points : 688
Envoyer un message via ICQ à Ph. B.
Citation:
Envoyé par RDM
1/ les requêtes imbriquées c'est pas bien... ;-)
Soit !

Citation:
Envoyé par RDM
2/ effectivement j'arrive a reproduire le problème de mon coté avec le SQL explorer de XMLRAD:
Ah ben je remonte dans mon estime ! ;-)

Plus sérieusement, comment réaliserais tu cet affichage (une table avec des infos, et ces données calculées) ?

J'ai essayé de contourner le pb en utilisant une vue, une procédure stockée, mais sans plus de succès...

Philippe.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2003, 10h37   #6
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
Il faut faire 2 requêtes (donc 2 DBEXtracts)

Code :
1
2
3
4
5
6
SELECT pub_id, pub_name
FROM publishers 
WHERE pub_id = :pub_id
 
SELECT Count(*) AS pub_count 
FROM publishers
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<document>
  <publishersS>
    <publishers>
      <pub_id>0736</pub_id>
      <pub_name>toto</pub_name>
    </publishers>
    ...
  </publishersS>
    <pubcount>
      <pub_count>8</pub_count>
    </pubcount>
</document>
et c'est le XSL qui rattrape le coup si tu veux l'afficher par exemple dans un tableau.

<xsl:value-of select="/document/pubcount/pub_count"/>
__________________
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 06/05/2003, 11h36   #7
Membre chevronné
 
Philippe
Inscription : avril 2002
Messages : 456
Détails du profil
Informations personnelles :
Nom : Philippe
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 456
Points : 688
Points : 688
Envoyer un message via ICQ à Ph. B.
Le pb est que j'ai 3 valeurs calculées par ligne.

Avec une valeur, j'aurais pu écrire:
Code :
1
2
3
4
5
6
7
SELECT SCT.SCT_ID, SCT_LIBELLE
       COUNT(*) AS SCT_NB_ETS
FROM TR_SECTEUR_SCT SCT
INNER JOIN T_SUCCURSALE_SCC SCC
ON SCC.SCT_ID = SCT.SCT_ID
WHERE SCT.RCO_ID = 8
GROUP BY SCT.SCT_ID, SCT_LIBELLE
En appliquant ta méthode pour 1 calcul je vais obtenir
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<document>
  <SCTS>
    <SCT>
      <SCT_ID>6</SCT_ID>
      <SCT_LIBELLE>toto</SCT_LIBELLE>
    </SCT>
    <SCT>
      <SCT_ID>35</SCT_ID>
      <SCT_LIBELLE>titi</SCT_LIBELLE>
    </SCT>
    <SCT>
      <SCT_ID>36</SCT_ID>
      <SCT_LIBELLE>tata</SCT_LIBELLE>
    </SCT>
  </SCTS>
  <ETSS>
    <ETS>
      <SCT_ID>6</SCT_ID>
      <ETS_NB>8</ETS_NB>
    </ETS>
    <ETS>
      <SCT_ID>35</SCT_ID>
      <ETS_NB>15</ETS_NB>
    </ETS>
  </ETSS>
</document>
J'ai un cas où la valeur vaut 0 (pour ETS_ID = 36) et n'est pas placée dans la grappe... Ca me gene un peu pour reconstruire mon tableau et ce le sera encore plus avec 3 valeurs calculées par ligne... :-(

Il eut été si simple que XMLRad accepte les requêtes imbriquées ! ;-)

Philippe.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2003, 13h19   #8
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
je vois pas ou se pose le problème de ma méthode...

d'autre part, le problème ne vietn pas d'XMLRAD mais du middleware ADO avec une requête paramétrée.
__________________
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 01h09.


 
 
 
 
Partenaires

Hébergement Web