有关更新数据库的 ColdFusion 10 文档有一节介绍ColdFusion 10 中与数据库相关的增强功能。该页面提到现在有支持CF_SQL_NVARCHAR
,但没有关于它们的详细信息。此外,cfqueryparam 文档尚未更新以包含它们的存在。
cfqueryparam的ColdFusion 9 文档提到CF_SQL_VARCHAR
映射到varchar
MSSQL。这是真的,除非 ColdFusion 管理员数据源设置String Format
启用了该设置。在这种情况下CF_SQL_VARCHAR
映射到nvarchar
. 这个记录不充分的功能是一种 hack,它可能会导致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
。
这意味着任何 CF10 之前的站点都可以迁移到 CF10 并工作,具有与 CF10 之前相同的性能考虑。
新站点或重写所有查询以匹配CF_SQL_VARCHAR
并CF_SQL_NVARCHAR
与数据库设计相匹配的站点将不会受到 CF10 之前不可避免的性能损失。
任何人都可以确认是否是这种情况;如果有官方的东西更好?