如何从应用程序cfc文件中引用第二个DB



在我们的门户应用程序.cfc中,我们定义(设置(DSN连接,如下所示:

<cfset this.datasource = "DSN1"> (Main DB) <cfset this.datasource_1 = "DSN2"> (2nd DB) <cfset this.datasource_2 = "DNS3"> (3rd DB)

这些都在标签中。我还转到了"OnApplicationStart"函数,无法使其正常工作。

这个应用程序.cfc如果在主应用程序中引用,其他应用程序可以访问(App2等…(,我的问题是;

如何在App2应用程序的查询中引用其他数据源(this.datasource_2(?

<cfquery name="queryname" datasource="**[What goes here]**"> For second datasource

始终引用this.datasource DSN,因为cfquery标记中没有列出任何数据源。

如果您能提供任何帮助或链接发送给我,我们将不胜感激。提前感谢!

尝试查看其他应用程序变量

<cfset application.datasource_1 = "DSN2">  (2nd DB)
<cfset application.datasource_2 = "DNS3"> (3rd DB)

我的解决方案是根本不使用任何变量,只对数据源名称进行硬编码。换句话说,为此:

<cfquery name="queryname" datasource="**[What goes here]**"> For second datasource

答案是"DSN2"

为了使这些数据源可用,必须在服务器上定义它们,并且您必须知道它们的名称。如果您将它们分配给某种全局变量,那么您必须知道该变量的名称。我认为在这种情况下使用全局变量没有任何价值。

对于DSN1,使用全局变量有利弊。变量的优点是,使用该数据库的查询不需要数据源属性。缺点是,如果某些查询具有数据源属性,而另一些查询没有,那么代码的一致性就会降低。这个话题最好在喝啤酒的时候亲自讨论。

或者您可以使用Applicaton.cfc this.datasources结构

最新更新