OK, so looking at the code in Plato, it seems that the approach there is to use cDRReportPlato, which just adds some additional functionality to cDFReportMSSQL, which adds the "DNS-less" ODBC connectivity functionality to cDRReport.

So... from the comments, I should either change each of my cDRReport object to be based on cDRReportMSSQL, or a sub-class thereof.

Is this correct?