【发布时间】:2016-08-17 16:52:19
【问题描述】:
已经向我展示了如何使用 Application.cfc 而不是使用 Application.cfm 来做到这一点 - 这很好,我喜欢学习新东西。然而,在我做出改变之后,我无法弄清楚如何让 DSN 正常工作。之前我只是在 Application.cfm 文件中使用了一组DSN。
<cfparam name="DSN" default="">
<cfset DSN = "krl" />
并在这里大声疾呼:
<CFQUERY NAME="Inital" DATASOURCE="#DSN#">
SELECT Website_Name
FROM InitalizationData
</CFQUERY>
现在设置如下:
component {
this.name = "app";
this.Sessionmanagement = true;
this.datasource = "krl";
public void function onSessionStart() {
// initialize cart
session.cart = [];
}
}
如何在我的查询中调用它?
【问题讨论】:
-
我以为你只是以同样的方式称呼它。
datasource="krl"来自您的示例。当你尝试它时发生了什么?我认为如果您只定义一个datasource,那么您甚至不必在cfquery标签中指定它。this.datasource使其成为您应用程序的默认值。 -
在 CF 9 中,您可以使用 this.datasource 设置默认数据源,就像您所做的那样。现在您的查询不需要指定数据源。
-
如何在我的查询中说出它?你没有。建立默认数据源的目的是避免必须在每个 cfquery 中指定 DSN 名称;-) 如前所述,您应该从 cfquery 中省略“datasource”属性,应用程序将自动使用默认值,即
this.datasource。 (旁注,thethisscope is not accessible outside the Application.cfc component。) -
@Miguel-F - 这就是答案。您应该将您的评论提升为“官方”答案。
标签: coldfusion application.cfc