Afficher le resultat d'une query sans connaitre le nom des colonnes

lgodet Messages postés 5 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 24 novembre 2004 - 19 nov. 2004 à 12:58
lgodet Messages postés 5 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 24 novembre 2004 - 24 nov. 2004 à 11:34
Bonjour,

Je voudrais afficher le resultat d'une requette, mais je ne connais pas le nom des colonnes du resultat du select * ?

ex:
<cfquery name="sample">
select * from toto
</cfquery>

Je vourdrai afficher le premier resultat sous forme de tableau

<cfoutput>

// comment afficher le resultat courant de la requete sans savoir le nom de la colonne ?

#sample[0][0]# ne marche pas ?

</cfoutput>

Merci par avance

Laurent

10 réponses

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
20 nov. 2004 à 15:48
Pour connaitre le nom de tes colonnes c'est sample.Columnlist (ki est une liste)
A partir de la, tu peux demander Evaluate("sample.#ListGetAt(sample.Columnlist,1)#[1]")
Je crois me souvenir que c'est ça.. Donc à vérifier.
S.
0
lgodet Messages postés 5 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 24 novembre 2004
22 nov. 2004 à 10:30
Merci de ta reponse,

J'ai essayé et voici le message d'erreur que j'ai :

An error has occurred while processing the expression:

sample.XML_F52E2B61-18A1-11D1-B105-00805F49916B[1]

Invalid parser construct found on line 1 at position 23. ColdFusion was looking at the following text:

A1

En fait, je pense que c'est le nom de retour de la requete qui pose probleme, et ce nom je ne peux pas le changer.

Il faudrait que j'affiche le resultat de la requete sous forme de tableau mais je ne sais pas comment faire :

#sample[0][0]# ne marche hélas pas ce serait trop facile
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
22 nov. 2004 à 11:06
Ou alors si il te semble ke 'sample' te pose problème tu peux faire:
<cfset qToto = sample>
<cfdump var="#Evaluate("qToto.#ListGetAt(qToto.Columnlist,1)#[1]") #">
Tiens moi au courant..
S.
0
lgodet Messages postés 5 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 24 novembre 2004
22 nov. 2004 à 11:15
J'ai essayé et le message d'erreur est le meme.

En fait ce n'est pas sample qui pose probleme, mais le nom du champ de la colonne de la reponse qe la query (XML_F52E2B61-18A1-11D1-B105-00805F49916B) qui ne passe pas.

C'est pour cela que j'essaye de passé directement par un tableau sans passé par le nom du resultat de la query.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lfontaine Messages postés 203 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 11 mai 2006
23 nov. 2004 à 00:04
Pour la bonne cause:

<cfquery name="qGetSample" datasource="#APPLICATION.DSN#">
SELECT * FROM t_Mytable ;
</cfquery>

<cfloop query="qGetSample">
<cfloop index="index" list="#VARIABLES.qGetSample.Columnlist#" delimiters=",">
<cfset test = "qGetSample.#index#">
<cfoutput>#Evaluate(test)#</cfoutput> -
</cfloop>

</cfloop>

Laurent
0
cs_lfontaine Messages postés 203 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 11 mai 2006
23 nov. 2004 à 00:22
Juste par simple curiosite, pourquoi tu veux faire un truc pareil ?

Laurent
0
lgodet Messages postés 5 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 24 novembre 2004
23 nov. 2004 à 10:11
Voici le message d'erreur que j'ai :

An error occurred while evaluating the expression:

#Evaluate(test)#

Error near line 8, column 12.
--------------------------------------------------------------------------------

An error has occurred while processing the expression:

qGetSample.XML_F52E2B61-18A1-11D1-B105-00805F49916B

Invalid parser construct found on line 1 at position 27. ColdFusion was looking at the following text:

A1

-------------

Voici ce pourquoi je veux faire cette manip :

J'ai une base sql 2000 et j'aimerais recupéré le resultat de ma requete sous format xml :

<cfquery name="qGetSample" datasource="#application.DSN#">
SELECT [id], nom, prenom, email, reponse, [date], newsletter, id_jeu, LangueID, adresse, cp, ville, tel, ip
FROM tb_jeux_participant
for xml raw
</cfquery>

Cette requete renvoie une champs ntext avec le resultat sous forme xml. Le Pb c'est que le nom de la colonne retournée est apparement XML_F52E2B61-18A1-11D1-B105-00805F49916B
et que ce nom pose problème lors de l'affichage du resultat.
0
cs_lfontaine Messages postés 203 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 11 mai 2006
24 nov. 2004 à 01:01
Ah Ok,

De deux choses l'une
- soit tu n'utilises pas ColdFusion MX et dans ce cas, le nom XML_F52E2B61-18A1-11D1-B105-00805F49916B est effectivement invalide pour une variable. Puisque les UUID contiennent des caracteres speciaux qui sont interdits.
La seule solution est d'utiliser la fonction de virtual mapping dans SQL 2000. Mais la il va y avoir du sport pour tout faire fonctionner

-Soit tu utilises CFMX, c'est a mon avis ta meilleur solution si tu veux vraiment utiliser XML. Dans ce cas c'est bien plus simple car je ne pense pas que les UUID soit encore invalide comme nom de variable. Deuxiemement, tu peux utiliser directement toutes les fonction XML fournies avec CFMX et travailler directement sur un objet XML comme variable.

Laurent
0
cs_lfontaine Messages postés 203 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 11 mai 2006
24 nov. 2004 à 01:07
Juste une idee comme ca.
Essayes
<cfset test = Duplicate("qGetSample."&index)>

On sait jamais.

Laurent
0
lgodet Messages postés 5 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 24 novembre 2004
24 nov. 2004 à 11:34
Helas, j'ai le meme message d'erreur avec cette solution.

De plus je n'utilise pas coldfusion MX mais coldfusion 5.

Je vais donc chercher vers la solution Virtual Mapping.

Merci

Laurent
0
Rejoignez-nous