Listing 1
<!--- Verify a datasource is working --->
<CFFUNCTION NAME="VerifyDSN" RETURNTYPE="boolean">
<CFARGUMENT NAME="dsn"
TYPE="string"
REQUIRED="yes">
<!--- Init local variables --->
<CFSET VAR dsService="">
<CFSET VAR result="true">
<!--- Try/catch block --->
<CFTRY>
<!--- Get "factory" --->
<CFOBJECT ACTION="CREATE"
TYPE="JAVA"
CLASS="coldfusion.server.ServiceFactory"
NAME="factory">
<!--- Get datasource service --->
<CFSET dsService=factory.getDataSourceService()>
<!--- Validate DSN --->
<CFSET result=dsService.verifyDatasource(dsn)>
<!--- If any error, return FALSE --->
<CFCATCH TYPE="any">
<CFSET result="false">
</CFCATCH>
</CFTRY>
<CFRETURN result>
</CFFUNCTION>
Listing 2
<!--- Get "factory" --->
<CFOBJECT ACTION="CREATE"
TYPE="JAVA"
CLASS="coldfusion.server.ServiceFactory"
NAME="factory">
<!--- Get datasource service --->
<CFSET dsService=factory.getDataSourceService()>
<!--- Get datasources --->
<CFSET dsFull=dsService.getDatasources()>
<!--- Extract names into an array --->
<CFSET dsNames=StructKeyArray(dsFull)>
<!--- List names --->
<UL>
<CFLOOP INDEX="i"
FROM="1"
TO="#ArrayLen(dsNames)#">
<!--- Display name --->
<CFOUTPUT>
<LI>#dsNames[i]#</LI>
</CFOUTPUT>
</CFLOOP>
</UL>
Listing 3
<!--- Get a query's SQL statement --->
<CFFUNCTION NAME="QueryGetSQL"
RETURNTYPE="string">
<!--- Query name is required --->
<CFARGUMENT NAME="queryname"
TYPE="string"
REQUIRED="yes">
<!--- Initialize variables --->
<CFSET VAR result="">
<CFSET VAR cfd="">
<CFSET VAR events="">
<!--- Requires debug mode --->
<CFIF IsDebugMode()>
<!--- Use debugging service --->
<CFOBJECT ACTION="CREATE"
TYPE="JAVA"
CLASS="coldfusion.server.ServiceFactory"
NAME="factory">
<CFSET cfd=factory.getDebuggingService()>
<!--- Get the event table --->
<CFSET events=cfd.getDebugger().getData()>
<!--- Get SQL statement (body) for query --->
<CFQUERY DBTYPE="query"
NAME="getquery"
DEBUG="false">
SELECT body
FROM events
WHERE type='SqlQuery' AND name='#queryname#'
</CFQUERY>
<!--- Save result --->
<CFSET result=getquery.body>
</CFIF>
<!--- Return string --->
<CFRETURN result>
</CFFUNCTION>