MCPcopy Create free account
hub / github.com/KangLin/RabbitRemoteControl / OpenODBCDatabase

Method OpenODBCDatabase

Src/Database/Database.cpp:232–286  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

230}
231
232bool CDatabase::OpenODBCDatabase(const CParameterDatabase *pPara,
233 const QString &szConnectName)
234{
235 if(!pPara) return false;
236
237 if(!szConnectName.isEmpty())
238 m_szConnectName = szConnectName;
239
240 // 打开或创建数据库
241 m_database = QSqlDatabase::addDatabase("QODBC", m_szConnectName);
242 QString szDbName = pPara->GetDatabaseName();
243 if(szDbName.isEmpty()) {
244#if DEBUG
245 szDbName = "remote_control_dev";
246#else
247 szDbName = "remote_control";
248#endif
249 }
250 m_database.setDatabaseName(szDbName);
251
252 if (!m_database.open()) {
253 SetError("Failed to open odbc database: " + m_database.databaseName()
254 + "; Connect name: " + m_database.connectionName()
255 + "; Error: " + m_database.lastError().text()
256 );
257 qCritical(log) << GetError();
258 return false;
259 }
260
261 m_bOwner = true;
262
263 QSqlQuery query(GetDatabase());
264 bool success = query.exec("CREATE DATABASE IF NOT EXISTS " + szDbName);
265 if (!success) {
266 SetError("Failed to create database: " + szDbName
267 + "; Error: " + query.lastError().text()
268 + "; Sql: " + query.executedQuery());
269 qCritical(log) << GetError();
270 return false;
271 }
272
273 success = query.exec("use " + szDbName);
274 if (!success) {
275 SetError("Failed to use " + szDbName
276 + "; Error: " + query.lastError().text()
277 + "; Sql: " + query.executedQuery());
278 qCritical(log) << GetError();
279 return false;
280 }
281
282 qInfo(log) << "Open odbc database:" << m_database.databaseName()
283 << "Connect name:" << m_database.connectionName();
284
285 return OnInitializeDatabase();
286}
287
288bool CDatabase::OnInitializeDatabase()
289{

Callers

nothing calls this directly

Calls 3

GetDatabaseNameMethod · 0.80
isEmptyMethod · 0.45
openMethod · 0.45

Tested by

no test coverage detected