Я произвожу запрос, но потребность указать первую строку результата. Я добавляю строку с QueryAddRow () и устанавливаю значения с QuerySetCell (). Я могу создать прекрасную строку, я могу добавить содержание к той прекрасной строке. Если я оставляю аргумент в пользу номера строки прочь QuerySetCell () затем, все это работает отлично как последний результат запроса, когда произведено. Однако мне нужен он, чтобы быть первой строкой запроса, но когда я пытаюсь установить атрибут строки с QuerySetCell, это просто перезаписывает первую возвращенную строку от моего запроса (т.е. мой QueryAddRow () заменяет первую запись от моего запроса). То, что я в настоящее время имею, устанавливает переменную от recordCount и располагает вывод, но должен быть действительно простой способ сделать это, что я просто не добираюсь. Это кодовые наборы значение строки к 1, но перезаписи первая возвращенная строка от запроса.
<cfquery name="qxLookup" datasource="#application.datasource#">
SELECT xID, xName, execution
FROM table
</cfquery>
<cfset QueryAddRow(qxLookup)/>
<cfset QuerySetCell(qxLookup, "xID","0",1)/>
<cfset QuerySetCell(qxLookup, "xName","Delete",1)/>
<cfset QuerySetCell(qxLookup, "execution", "Select this to delete",1)/>
<cfoutput query="qxLookup">
<tr>
<td>
<a href="##" onclick="javascript:ColdFusion.navigate('xSelect/x.cfm?xNameVar=#url.xNameVar#&xID=#qxLookup.xID#&xName=#URLEncodedFormat(qxLookup.xName)#', '#xNameVar#');ColdFusion.Window.hide('#url.window#')">#qxLookup.xName#</a>
</td>
<td>#qxLookup.execution#</td>
</tr>
</cfoutput>
Спасибо за любую справку.
Я бы добавил в исходный запрос какой-то столбец порядка сортировки, задав ему фиксированное значение 1
.
<cfquery name="qxLookup" datasource="#application.datasource#">
SELECT xID, xName, execution, 1 as sortorder
FROM table
</cfquery>
Установите значение этого столбца в синтетической строке на значение 0
.
<cfset QueryAddRow(qxLookup)>
...
<cfset QuerySetCell(qxLookup, "sortorder", "0",1)>
Затем используйте запрос запросов, чтобы изменить порядок набора записей по столбцу sortorder
.
<cfquery name="qxLookup" dbtype="query">
select xid, xname, execution
from qxLookup
order by sortorder
</cfquery>
Ну, я уже имел дело с этой проблемой раньше, для меня ответ состоял в том, чтобы иметь 2 отдельных запроса.
1-й - это ваш обычный запрос, 2-й - это запрос запросов, затем выполните их объединение, при этом qofq будет выше обычного запроса, и это должно дать вам результаты в том порядке, в котором вы хотите.
Примерно так:
<cfquery name="table_a_results" datasource="">
select a, b, c
from table_a
</cfquery>
cfset table_b = querynew("a, b, c")
cfset temp = queryaddrow("table_b")
cfset temp = querysetcell(table_b,10)
cfset temp = querysetcell(table_b,20)
cfset temp = querysetcell(table_b,30)
<cfquery name="final_query" dbtype="query">
select a, b, c
from table_b
union
select a, b, c
from table_a_results
</cfquery>
Затем с помощью этого инструмента вы можете размещать запросы в любом порядке, но не забудьте использовать порядок по тегу, чтобы изменить порядок ...
Просто альтернативный вариант, но вы можете убрать ColdFusion из картины и сделать это исключительно в SQL, используя что-то вроде (например, в oracle)
select 'myinsertedvalue' from dual объединение select myrealvalues from mutable
Вы можете объединить с колонкой сортировки Kens, чтобы получить полное упорядочивание. Предполагается, что вы получаете основной запрос из БД!