根据数据源查找数据库信息
Finding DB info based on Datasource
我希望从数据源名称中获取数据库服务器和数据库信息。
我试过使用 <cfdbinfo>
但它似乎没有任何信息
<cfdbinfo
type="dbnames"
datasource="#dsn#"
name="dbdata">
<cfoutput>
The #dsn# data source has the following databases:<br />
</cfoutput>
<cfdump var="#dbdata#">
我希望获得以黄色突出显示的信息
您将需要创建一个管理对象 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 来检索您需要的信息。
另一种选择是从 {cf_root}/lib/ directory
中读取文件 neo-datasource.xml
,使用 xmlparse 对其进行解析,然后从那里读取数据。
这是我同事几年前想出的另一种方法。
<cfobject type="JAVA" action="Create" name="factory"
class="coldfusion.server.ServiceFactory">
<cfscript>
sqlexecutive = factory.getDataSourceService();
//get data sources
ds=sqlexecutive.getDatasources();
</cfsript>
不确定它是否比 Andrew 的方法更好或更差,但有选择很好。
我希望从数据源名称中获取数据库服务器和数据库信息。
我试过使用 <cfdbinfo>
但它似乎没有任何信息
<cfdbinfo
type="dbnames"
datasource="#dsn#"
name="dbdata">
<cfoutput>
The #dsn# data source has the following databases:<br />
</cfoutput>
<cfdump var="#dbdata#">
我希望获得以黄色突出显示的信息
您将需要创建一个管理对象 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 来检索您需要的信息。
另一种选择是从 {cf_root}/lib/ directory
中读取文件 neo-datasource.xml
,使用 xmlparse 对其进行解析,然后从那里读取数据。
这是我同事几年前想出的另一种方法。
<cfobject type="JAVA" action="Create" name="factory"
class="coldfusion.server.ServiceFactory">
<cfscript>
sqlexecutive = factory.getDataSourceService();
//get data sources
ds=sqlexecutive.getDatasources();
</cfsript>
不确定它是否比 Andrew 的方法更好或更差,但有选择很好。