2015-02-09 83 views
0

我期望從數據源名稱中獲取數據庫服務器和數據庫信息。根據數據源查找數據庫信息

我一直在使用<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

回答

1

你需要創建一個對象然後創建數據源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公開的方法來檢索您需要的信息。

另一種選擇是從{cf_root}/lib/ directory中讀取neo-datasource.xml文件,使用xmlparse解析並從那裏讀取數據。

0

這是我的同事在幾年前提出的另一種方法。

<cfobject type="JAVA" action="Create" name="factory" 
class="coldfusion.server.ServiceFactory"> 
<cfscript> 
sqlexecutive = factory.getDataSourceService(); 
//get data sources 
ds=sqlexecutive.getDatasources(); 
</cfsript> 

不知道比安德魯的方法好還是差,但有很多選擇。

+0

我喜歡它不需要管理員密碼 – 2015-02-09 23:36:41