首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Application.cfc设置DSN并调用该DSN

Application.cfc设置DSN并调用该DSN
EN

Stack Overflow用户
提问于 2016-08-18 00:52:20
回答 2查看 1.8K关注 0票数 1

我已经被展示了如何使用Application.cfc而不是Application.cfm来做这件事--这很好,我喜欢学习新的东西。然而,在我做了更改之后,我不知道如何让DSN正常工作。在我刚刚在Application.cfm文件中使用了一个设置的DSN之前。

代码语言:javascript
复制
<cfparam name="DSN" default="">
<cfset DSN = "krl" />

并把它叫到这里:

代码语言:javascript
复制
<CFQUERY NAME="Inital" DATASOURCE="#DSN#">
    SELECT Website_Name
    FROM InitalizationData
</CFQUERY>

现在将其设置为:

代码语言:javascript
复制
component {
    this.name = "app"; 
    this.Sessionmanagement = true;
    this.datasource = "krl";

    public void function onSessionStart() {
        // initialize cart 
        session.cart = [];
    }
}

我如何在我的查询中调用它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-18 03:26:20

Application.cfc中,您通常会添加一个函数onApplicationStart()。然后,在该函数内部定义

application.dsn = "foo";

并像这样引用它:

<cfquery name="test" datasource="#application.dsn#">

在CFC中将变量定义为this.datasource时,this作用域仅存在于该CFC的上下文中。它不能从外部访问。

票数 0
EN

Stack Overflow用户

发布于 2016-08-22 19:40:39

我可以在任何CFM页面中使用this.datasource。示例:

代码语言:javascript
复制
<cfinsert tableName="#variables.type#s" dataSource="#this.datasource#">

Application.cfc看起来像这样:

代码语言:javascript
复制
<cfcomponent
    displayname="Application"
    output="true"
    hint="Handle the application.">

    <!--- Set up the application. --->
    <cfset THIS.Name = "#cgi.server_name#" />
    <cfset THIS.SessionManagement = true />
    <cfset THIS.ApplicationTimeout = CreateTimeSpan( 1, 0, 0, 0 ) />
    <cfset THIS.SessionTimeout = CreateTimeSpan( 0, 0, 30, 0 ) />
    <cfset THIS.SetClientCookies = true />
    <!--- FOR THE DATASOURCE --->
    <cfset this.datasource = "MyDSN" />
...
</cfcomponent>

但是,在常规标记中,如果数据源在THIS作用域中,则根本不需要指定数据源:

代码语言:javascript
复制
<cfquery name="get">
SELECT id
FROM restaurants
WHERE email = '#something#'
UNION       
SELECT id
FROM individuals
WHERE email = '#something#'
</cfquery>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39002299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档