Methods vorher zum Erhalten von Abfragedaten durch Spaltennamen und die Zeilennummer (variables.myquery beschrieben [" column"] [rowNumber ]) sind korrekt, aber nicht praktisch, um eine vollständige Reihe von Abfragedaten zu erhalten.
Ich laufe Railo 4.1. Und das ist eine coole Lösung. Schade, dass wir das nicht so machen können, wie wir es wollen, um eine ganze Reihe von Daten zu bekommen, aber die folgende Methode erlaubt es uns, durch einige Reifen zu bekommen, was wir wollen.
Wenn Sie serializeJSON(variables.myquery)
ändern, ändert sich die Abfrage in ein JSON-formatiertes cfml-struct-Objekt mit zwei Elementen: "Columns" und "Data". Beides sind Datenfelder. Das "Daten" -Array ist ein zweidimensionales Array für Zeilen und dann für spaltenförmige Daten.
Das Problem ist, dass wir jetzt eine unbrauchbare Zeichenfolge haben. Wenn wir es dann erneut serialisieren, ist es keine Abfrage, sondern eine brauchbare reguläre Struktur in dem oben beschriebenen Format.
Angenommen, wir haben bereits eine Abfragevariable mit dem Namen 'variables.myquery'. Schauen Sie sich den folgenden Code:
<cfset variables.myqueryobj = deserializeJSON(serializeJSON(variables.myquery)) />
Jetzt können Sie die zweidimensionale Matrix erhalten, indem man diese:
<cfset variables.allrowsarray = variables.myqueryobj.data />
Und Sie eine Abfragezeile Array erhalten, indem diese bekommen:
<cfset variables.allrowsarray = variables.myqueryobj.data[1] />
ODER die letzte Zeile auf diese Weise:
<cfset variables.allrowsarray = variables.myqueryobj.data[variables.myquery.recordCount] />
Und Sie können durch Spalte Bestellnummer Iteration einzelne Spaltenwerte erhalten:
<cfset variables.allrowsarray = variables.myqueryobj.data[1][1] />
Jetzt könnte dies langsam und möglicherweise unklug mit großen Abfrageergebnissen, aber das ist eine coole Lösung dennoch.
CFLib.org wieder zur Rettung: http://cflib.org/udf/queryGetRow. Das lässt dich '' machen cfset x = queryGetRow (QueryName, 5)> ' – ale