Boy am I a big dork. After a long weekend I took a look at this again, and
realized that my variable "ds" was an array of datasource matches... and I
was referencing it as a struct. Doh!
Correct code:
<cffunction name="getConnection" output="false">
<cfset var admin = createObject("component",
"bluedragon.adminapi.Administrator") />
<cfset var adminDS = "" />
<cfset var ds = "" />
<cfset var loginResult = false />
<cfset var connection = "" />
<cfset loginResult = admin.login("password") />
<cfif loginResult>
<cfset session.auth = {
loggedIn = true,
password = "password"
} />
</cfif>
<cfset adminDS = createObject("component", "bluedragon.adminapi.Datasource")
/>
<cfset ds = adminDS.getDatasources(application.dsn) />
<cftry>
<cfset connection = createObject("java",
"java.sql.DriverManager").getConnection(ds[1].hoststring, ds[1].username,
ds[1].password) />
<cfcatch>
<cfdump var="#ds#" />
<cfdump var="#cfcatch#" />
<cfrethrow />
<cfabort />
</cfcatch>
</cftry>
<cfset admin.logout() />
<cfreturn connection />
</cffunction>
--
official tag/function reference: http://openbd.org/manual/
mailing list - http://groups.google.com/group/openbd?hl=en