Есть ли способ избежать и использовать зарезервированные слова запроса ColdFusion в качестве имен столбцов в запросе запроса? - PullRequest
1 голос
/ 13 февраля 2012

Я работаю с запросом, у которого есть столбец с именем «Дата».

Исходный запрос нормально возвращается из базы данных. Вы можете вывести исходный запрос, разбить на страницы исходный запрос, получить список значений столбца Дата и т. Д.

Запрос запроса

<cfquery  name= "Query" dbtype= "query">
select 
[Query].[Date]

from [Query] 

</cfquery>

Ответ от ColdFusion

Ошибка синтаксиса Query Of Queries. Обнаружено "Дата. Неправильно выбран Список

Обычно я использую описательные имена, поэтому раньше я не сталкивался с этой проблемой.

В этом случае я работаю с хранимой процедурой, написанной кем-то другим. Я закончил тем, что изменил хранимую процедуру, чтобы использовать более описательное имя столбца.

У меня есть сервис, который я использую для преобразования, поиска и сортировки запросов с помощью ColdFusion. Мне любопытно узнать ответ на мой исходный вопрос, чтобы я мог изменить свой сервис так, чтобы он выдавал лучшую ошибку или обрабатывал зарезервированные слова.

Есть ли способ избежать и использовать зарезервированные слова запроса ColdFusion в качестве имен столбцов в запросе запроса?

Ответы [ 2 ]

8 голосов
/ 13 февраля 2012

У меня нормально работает следующий код:

<cfset query = queryNew("date")>

<cfdump var="#query#">

<cfquery  name= "Query" dbtype= "query">
select 
[Query].[Date]

from [Query] 

</cfquery>

<cfdump var="#query#">
0 голосов
/ 13 февраля 2012

В стандартном mysql вы бы "экранировали" поля, используя символ `.

Так, например:

select `query`.`date` from `query`

Попробуйте и посмотрите, работает ли он?

...