我希望从数据源名称获取数据库服务器和数据库信息。
我尝试使用<cfdbinfo>
,但似乎没有任何相关信息
<cfdbinfo
type="dbnames"
datasource="#dsn#"
name="dbdata">
<cfoutput>
The #dsn# data source has the following databases:<br />
</cfoutput>
<cfdump var="#dbdata#">
我希望以黄色
答案 0 :(得分:1)
您需要创建admin API的对象,登录,然后创建数据源API的对象,如下所示:
<cfset admin_api = createObject('component', 'cfide.adminapi.administrator')>
<cfset admin_api.login('cf_admin_password_here')>
<cfset admin_api_dsn = createObject('component', 'cfide.adminapi.datasource')>
然后,您可以使用数据源API公开的方法来检索所需的信息。
另一种选择是从neo-datasource.xml
读取文件{cf_root}/lib/ directory
,使用xmlparse解析该文件,然后从那里读取数据。
答案 1 :(得分:0)
这是我的同事几年前提出的另一种方法。
<cfobject type="JAVA" action="Create" name="factory"
class="coldfusion.server.ServiceFactory">
<cfscript>
sqlexecutive = factory.getDataSourceService();
//get data sources
ds=sqlexecutive.getDatasources();
</cfsript>
不确定它是否比安德鲁的方法更好或更差,但是有选择权很好。