| 67 | } |
| 68 | |
| 69 | bool CDatabase::OpenDatabase(const CParameterDatabase *pPara, |
| 70 | const QString &szConnectName) |
| 71 | { |
| 72 | SetError(); |
| 73 | bool bRet = false; |
| 74 | if(!pPara) { |
| 75 | bRet = OpenSQLiteDatabase(pPara, szConnectName); |
| 76 | return bRet; |
| 77 | } |
| 78 | |
| 79 | m_pPara = pPara; |
| 80 | QString szErr = "Only one of OpenDatabase or SetDatabase can be called, and it can only be called once"; |
| 81 | Q_ASSERT_X(!IsOpen(), "Database", szErr.toStdString().c_str()); |
| 82 | |
| 83 | if(pPara->GetType() == "QSQLITE") |
| 84 | bRet = OpenSQLiteDatabase(pPara, szConnectName); |
| 85 | else if(pPara->GetType() == "QMYSQL") |
| 86 | bRet = OpenMySqlDatabase(pPara, szConnectName); |
| 87 | else if(pPara->GetType() == "QODBC") |
| 88 | bRet = OpenODBCDatabase(pPara, szConnectName); |
| 89 | else |
| 90 | SetError(tr("Database type not supported:") + " " + pPara->GetType()); |
| 91 | |
| 92 | QSqlDriver *driver = GetDatabase().driver(); |
| 93 | if (driver) { |
| 94 | qDebug(log) << "=== Features for" << pPara->GetType() << "==="; |
| 95 | qDebug(log) << "Transactions:" << driver->hasFeature(QSqlDriver::Transactions); |
| 96 | qDebug(log) << "Query size:" << driver->hasFeature(QSqlDriver::QuerySize); |
| 97 | qDebug(log) << "BLOB:" << driver->hasFeature(QSqlDriver::BLOB); |
| 98 | qDebug(log) << "Unicode:" << driver->hasFeature(QSqlDriver::Unicode); |
| 99 | qDebug(log) << "Prepared queries:" << driver->hasFeature(QSqlDriver::PreparedQueries); |
| 100 | qDebug(log) << "Named placeholders:" << driver->hasFeature(QSqlDriver::NamedPlaceholders); |
| 101 | qDebug(log) << "Positional placeholders:" << driver->hasFeature(QSqlDriver::PositionalPlaceholders); |
| 102 | qDebug(log) << "Last insert ID:" << driver->hasFeature(QSqlDriver::LastInsertId); |
| 103 | qDebug(log) << "Batch operations:" << driver->hasFeature(QSqlDriver::BatchOperations); |
| 104 | qDebug(log) << "Event notifications:" << driver->hasFeature(QSqlDriver::EventNotifications); |
| 105 | qDebug(log) << "Finish query:" << driver->hasFeature(QSqlDriver::FinishQuery); |
| 106 | qDebug(log) << "Multiple result sets:" << driver->hasFeature(QSqlDriver::MultipleResultSets); |
| 107 | qDebug(log) << "Cancel query:" << driver->hasFeature(QSqlDriver::CancelQuery); |
| 108 | } |
| 109 | |
| 110 | return bRet; |
| 111 | } |
| 112 | |
| 113 | bool CDatabase::OpenSQLiteDatabase(const CParameterDatabase *pPara, |
| 114 | const QString &szConnectionName) |
no test coverage detected