有关更新数据库的 ColdFusion 10 文档有一节介绍ColdFusion 10 中与数据库相关的增强功能。该页面提到现在有支持CF_SQL_NVARCHAR,但没有关于它们的详细信息。此外,cfqueryparam 文档尚未更新以包含它们的存在。
cfqueryparam的ColdFusion 9 文档提到CF_SQL_VARCHAR映射到varcharMSSQL。这是真的,除非 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 之前不可避免的性能损失。
任何人都可以确认是否是这种情况;如果有官方的东西更好?