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