Существует одна большая проблема с кэшированием запроса запроса.
Документация для кэширования запроса гласит:
Чтобы использовать кэшированные данные, текущий запрос должен использоватьтот же оператор SQL, источник данных, имя запроса, имя пользователя и пароль.
Однако у Query of Query нет источника данных, имени пользователя или пароля, поэтому вы теряете многокеш "защита.Запрос в том виде, в котором он указан в вашем вопросе, будет конфликтовать с любыми другими запросами на вашем сервере, которые имеют такое же имя и форматирование.Поэтому, если у вас есть несколько веб-сайтов, использующих этот код, тогда первый загруженный веб-сайт будет диктовать переводы, используемые на остальных веб-сайтах.
Быстрый способ обойти этот запрос, чтобы сделать запрос более
<cfquery name="qryTranslation" dbtype="query">
SELECT
TranslationString
FROM
qryGetText
WHERE
TranslationHash = <cfqueryparam value="#StringHash#" cfsqltype="cf_sql_varchar">
AND DesiredLanguageID = <cfqueryparam value="#Arguments.LanguageID#" cfsqltype="cf_sql_bigint">
AND '#Variables.DSN#' = '#Variables.DSN#'
</cfquery>
Измените Variables.DSN
на значение атрибута источника данных в основном запросе.Если вы не доверяете этой переменной, сделайте ее также cfqueryparam с обеих сторон оператора.