根据Datasource查找DB信息

时间:2015-02-09 22:30:28

标签: coldfusion datasource coldfusion-9

我希望从数据源名称获取数据库服务器和数据库信息。

我尝试使用<cfdbinfo>,但似乎没有任何相关信息

<cfdbinfo
    type="dbnames"
    datasource="#dsn#"
    name="dbdata">

<cfoutput>
The #dsn# data source has the following databases:<br />
</cfoutput>
<cfdump var="#dbdata#">

我希望以黄色enter image description here

突出显示信息

2 个答案:

答案 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>

不确定它是否比安德鲁的方法更好或更差,但是有选择权很好。