В документации по ColdFusion 10 по обновлению вашей базы данных есть раздел Усовершенствования, связанные с базами данных в ColdFusion 10. На этой странице упоминается, что теперь есть поддержка CF_SQL_NVARCHAR
среди прочих, но без подробностей о них. Кроме того, документация cfqueryparamне была обновлена, чтобы включить их существование.
В документации ColdFusion 9 для cfqueryparamупоминается, что CF_SQL_VARCHAR
отображается в varchar
в MSSQL. Это верно, если в настройках источника данных администратора ColdFusion не включена настройка Формат строки
. В этом случае CF_SQL_VARCHAR
отображается в nvarchar
. Эта плохо задокументированная функция является хаком, который может вызвать проблемы с производительностьюв ColdFusion.
Так что это здорово, что они представили CF_SQL_NVARCHAR
, но было бы хорошо понять, как это работает.Это просто псевдоним для CF_SQL_VARCHAR
, что делает его бессмысленным? Всегда ли он отправляет строки как nvarchar
? Если да, всегда ли CF_SQL_VARCHAR
отправляет varchar
?
Я надеюсь, что для обратной совместимости это реализовано следующим образом:
Если Формат строки
включен CF_SQL_VARCHAR
и CF_SQL_NVARCHAR
оба сопоставляются с nvarchar
.
Если String Format
отключен, то CF_SQL_VARCHAR
сопоставляется с varchar
, а CF_SQL_NVARCHAR
сопоставляется с nvarchar
.
Это означает, что любые сайты до CF10 могут перейти на CF10 и работать с теми же соображениями производительности до CF10.
Новые сайты или сайты, которые переписывают все запросы для соответствия CF_SQL_VARCHAR
и CF_SQL_NVARCHAR
с дизайном базы данных, не получат снижения производительности, неизбежного до CF10.
Может ли кто-нибудь подтвердить, так ли это; еще лучше, если с чем-то официальным?