Каковы особенности использования CF_SQL_NVARCHAR в ColdFusion 10?

В документации по 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.

Может ли кто-нибудь подтвердить, так ли это; еще лучше, если с чем-то официальным?

12
задан Community 23 May 2017 в 12:18
поделиться