Listing 4: Preparing to instantiate the correct persistence implementation class.
Controller::Invoke(ICmd* cmd, Vo* vo)
{
try {
if (vo->getImp() == Vo::ODBC_SQLServer) {
vo->setImpLibrary("ReferenceImp_Odbc.dll");
vo->setImpAppendName("DB_ODBC_SqlServer");
}
if (vo->getImp() == Vo::ODBC_Oracle) {
vo->setImpLibrary("ReferenceImp_Odbc.dll");
vo->setImpAppendName("DB_ODBC_Oracle");
}
else if (vo->getImp() == Vo::OCCI_Oracle) {
vo->setImpLibrary("ReferenceImp_Occi.dll");
vo->setImpAppendName("DB_OCCI");
}
// Now invoke since after vo knows all it needs
cmd->Execute(vo);
}
catch (exception ex) {
// handle error ...
}
catch (...) {
// handle error
}
}