如何从应用程序 cfc 文件中引用第二个数据库
How do I reference a second DB from an application cfc file
在我们的门户 application.cfc 中,我们定义(设置)我们的 DSN 连接如下:
<cfset this.datasource = "DSN1"> (Main DB)
<cfset this.datasource_1 = "DSN2"> (2nd DB)
<cfset this.datasource_2 = "DNS3"> (3rd DB)
这些在标签中。然后我也移动到“OnApplicationStart”功能,但无法使其正常工作。
这个 application.cfc 如果在主 APP 中引用,其他应用程序可以访问(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 结构
在我们的门户 application.cfc 中,我们定义(设置)我们的 DSN 连接如下:
<cfset this.datasource = "DSN1"> (Main DB)
<cfset this.datasource_1 = "DSN2"> (2nd DB)
<cfset this.datasource_2 = "DNS3"> (3rd DB)
这些在标签中。然后我也移动到“OnApplicationStart”功能,但无法使其正常工作。
这个 application.cfc 如果在主 APP 中引用,其他应用程序可以访问(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 结构