Es gibt als Softwareentwickler immer wieder Situationen, in denen man den sprichwörtlichen Weg
vom Rücken durch die Brust ins Knie
nehmen muss, um ans Ziel zu kommen.
Ein Beispiel dafür sind SQL Abfragen, die die „FOR XML'“ Anweisung nutzen, um die selektierten Daten als XML-Konstrukt auszugeben. Das Problem ist in diesem Fall, das die Ergebnisspalte den Namen „XML_F52E2B61-18A1-11D1-B105-00805F49916B“ trägt. Versucht man jedoch, diese Spalte auf die üblichen Wege mit ColdFusion anzusprechen, sprich mittels
<cfoutput query="meinQuer">#XML_F52E2B61-18A1-11D1-B105-00805F49916B# </cfoutput>
oder
<cfloop query="meinQuery">
#XML_F52E2B61-18A1-11D1-B105-00805F49916B#
</cfloop>
hagelt es eine hässliche Fehlermeldung, da die Bindestriche im Spaltennamen anscheinend als Minus interpretiert werden. Einziger Weg, doch noch an Ziel zu kommen, ist folgende, Methode
<cfoutput>#
meinQuery
["XML_F52E2B61-18A1-11D1-B105-00805F49916B"][1]#</cfoutput>
beziehungsweise
<cfloop>
#
meinQuery
["XML_F52E2B61-18A1-11D1-B105-00805F49916B"][meinQuery
.currentRow]#</cfloop>
Bei dieser Methode wird in dem ersten Klammerpaar nach dem Namen des Query-Objektes der Name der Spalte, auf die man zugreifen möchte, in Anführungszeichen angegeben. Im zweiten Klammerpaar wird die Nummer der gewünschten Zeile angegeben.
Da diese Möglichkeit in der offiziellen Doku von Adobe nicht erwähnt oder zumindest sehr gut versteckt ist, kennt sie auch nicht zwangsläufig jeder ColdFusion-Entwickler und ich bin auch erst nach langem Googeln darauf gestoßen.
Aber wie heißt es so schön
Wer keinen langen Atem hat oder nicht improvisieren kann, ist in diesem Beruf falsch!
😎