有关更新数据库的ColdFusion 10文档有关于ColdFusion 10中与数据库相关的增强功能的部分.那个页面提到现在有支持CF_SQL_NVARCHAR,但没有关于它们的细节.此外,cfqueryparam文档尚未更新以包含它们的存在.
cfqueryparam的ColdFusion 9文档提到CF_SQL_VARCHAR映射到varcharMSSQL中.除非ColdFusion Administrator 数据源设置已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.
任何人都可以确认是否是这种情况; 如果有官方的东西更好吗?
使用变量时,范围评估顺序是众所周知/记录的.但是,在设置变量时,我找不到有关范围评估顺序的任何信息.
人们会认为它是相同的列表,但似乎有一些警告如下所示:
<cfset qryChain = queryNew("id,next")>
<!--- add some data so the cfloop kicks in --->
<cfloop query="qryChain">
<cfset Next = StructNew()>
<cfset Next.id = qryChain.next>
</cfloop>
Run Code Online (Sandbox Code Playgroud)
上面的代码试图重用它不应该的变量名,但是以一种意想不到的方式失败.
由于cfsets在查询循环中,因此范围评估顺序的第4项应该用于两者.而是Next被评估为Variables.Next(项目6),然后Next.id被评估为Variables.qryChain.next.id(项目4)并且失败.
这记录在哪里?它只是上面"使用"列表的第1-6项,但有一些注意事项?这些警告是故意还是错误?还有什么其他警告?
可信缓存缓存哪些文件扩展名?CFM和CFC是显而易见的,但CFR呢?是否有可信任缓存捕获的其他文件扩展名?
我知道/怀疑文件进入模板缓存的一些地方是:
cfm,cfml,cfc,多吗?)<cfinclude template="./some.css">)cfm更多?)cfm,还jar和tld?)cfc还有.net,com,java和web服务?)cfr可以使用cfcompile实用程序吗?)是否有其他标签与将内容添加到模板缓存中具有相同的效果?
ColdFusion会话与J2EE会话有什么好处吗?
该ColdFusion的会议文件中提到J2EE会话的好处,而不是ColdFusion的会话的任何好处.自ColdFusion MX(2002年发布)以来,J2EE会话已经可用,但仍有很多人使用标准的ColdFusion会话.是否存在ColdFusion会话不存在的J2EE会话的任何缺点?
与ColdFusion会话管理相比,J2EE会话管理具有以下优势:
- J2EE会话管理使用会话特定的会话标识符
jsessionid,该标识符在每个会话开始时重新创建.- 您可以在ColdFusion页面和您从ColdFusion页面调用的JSP页面或Java servlet之间共享会话变量.
- 会话范围是可序列化的(可转换为字节序列,以后可以完全恢复到原始对象中).使用ColdFusion会话管理,会话范围不可序列化.只能在服务器之间共享可序列化的作用域.
因此,请考虑在以下任何情况下使用J2EE会话管理:
- 您希望最大化会话安全性,尤其是在您还使用客户端变量的情况下
- 您希望在单个应用程序中共享ColdFusion页面与JSP页面或servlet之间的会话变量.
- 您希望能够在维护客户端标识cookie的同时手动终止会话,以供客户端范围使用.
- 您想支持群集会话; 例如,支持服务器之间的会话故障转移.