I'm a little late to the thread, but...
Most of my DB calls end up in components, which have a
"datasource" property. If this approach were taken, you could use
the try/catch to alter the datasource property...
<cfset DAO = CreateObject("component",
"some.DAO.thing").init() />
<cftry>
<cfscript>
DAO.datasource = "ds1";
DAO.doQuery();
</cfscript>
<cfcatch type="database">
<cfscript>
DAO.datasource = "ds2";
DAO.doQuery();
</cfscript>
</cfcatch>
</cftry>
Same concept as the include approach, as far as modularity
goes. I hope this alternative helps.
Adam Bellas | Full Sail University | Winter Park, FL