0

我想在我的 Application.cfc 中设置一个数据源我可以用 dbsetup 以某种方式做到这一点吗?

我想命名源,指定服务器,数据库,用户,密码,......

我的管理员不在服务器上工作,这就是我想这样做的原因。

4

4 回答 4

1

如果您有管理员密码,则可以使用管理员 API创建它。不过,我不确定您是否应该在 application.cfc 中执行此操作。CF6+ 取消了本机使用 DSN-Less 连接的能力,因此除非您想跳过很多圈,否则您无法单独使用 DSN 。

于 2013-05-16T13:41:13.890 回答
1

对于 MYSQL 数据库,请参考此处的代码: http ://www.thehatrack.net/blog/programmatically-creating-new-datasources-in-coldfusion/

对于 MSSQL 数据库,请参考此处的代码:http: //help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fcf.html

在任一示例中,您仍然需要访问您的 cfadmin 密码才能访问 API,因为它是一项管理员功能。

于 2013-05-16T13:41:20.703 回答
1

您可以attributeCollection在 application.cfc 文件中定义

<cfset stData = {}>
<cfset stData.username = 'myusername'>
<cfset stData.password= 'myPassword'>

然后attributeCollection在你的cfquery

<cfquery attributecollection="#stData#">

然后,您必须将密码存储在此结构中,因此这不是一个理想的过程。如果您无权访问 CF 管理员或 CF 管理员密码,则您的选择非常有限。

于 2013-05-16T13:41:46.800 回答
1

自 2014 年的 ColdFusion 11 以来,这已经成为可能。文档在Application variables中。

文档中的示例是:

// Application.cfc
component {
        this.name = "DSNTest";
        this.datasources = { 
                mssql_app = { 
                    database = "<DBName>", 
                    host = "<HostNameOrIP>", 
                    port = "<portNumber>", 
                    driver = "MSSQLServer", 
                    username = "username", 
                    password = "password" } 
                };
        this.datasource = "mssql_app";
}
于 2021-05-09T09:53:02.543 回答