kernel/qsqldatabase.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6static QFactoryLoader *loader() { static QGlobalStatic<QFactoryLoader > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QFactoryLoader *x = new QFactoryLoader ("org.qt-project.Qt.QSqlDriverFactoryInterface", QLatin1String("/sqldrivers")); if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QFactoryLoader > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); }
never executed: delete x;
executed: return thisGlobalStatic.pointer.load();
Execution Count:97
partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
evaluated: !thisGlobalStatic.pointer.load()
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:88
partially evaluated: !thisGlobalStatic.destroyed
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
0-97
7 -
8 -
9 -
10 -
11const char *QSqlDatabase::defaultConnection = "qt_sql_default_connection"; -
12 -
13typedef QHash<QString, QSqlDriverCreatorBase*> DriverDict; -
14 -
15class QConnectionDict: public QHash<QString, QSqlDatabase> -
16{ -
17public: -
18 inline bool contains_ts(const QString &key) -
19 { -
20 QReadLocker locker(&lock); -
21 return contains(key);
executed: return contains(key);
Execution Count:2
2
22 } -
23 inline QStringList keys_ts() const -
24 { -
25 QReadLocker locker(&lock); -
26 return keys();
never executed: return keys();
0
27 } -
28 -
29 mutable QReadWriteLock lock; -
30}; -
31static QConnectionDict *dbDict() { static QGlobalStatic<QConnectionDict > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QConnectionDict *x = new QConnectionDict; if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QConnectionDict > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); }
partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
evaluated: !thisGlobalStatic.pointer.load()
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:2269
partially evaluated: !thisGlobalStatic.destroyed
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
never executed: delete x;
executed: return thisGlobalStatic.pointer.load();
Execution Count:2278
0-2278
32 -
33class QSqlDatabasePrivate -
34{ -
35public: -
36 QSqlDatabasePrivate(QSqlDatabase *d, QSqlDriver *dr = 0): -
37 ref(1), -
38 q(d), -
39 driver(dr), -
40 port(-1) -
41 { -
42 precisionPolicy = QSql::LowPrecisionDouble; -
43 }
executed: }
Execution Count:45
45
44 QSqlDatabasePrivate(const QSqlDatabasePrivate &other); -
45 ~QSqlDatabasePrivate(); -
46 void init(const QString& type); -
47 void copy(const QSqlDatabasePrivate *other); -
48 void disable(); -
49 -
50 QAtomicInt ref; -
51 QSqlDatabase *q; -
52 QSqlDriver* driver; -
53 QString dbname; -
54 QString uname; -
55 QString pword; -
56 QString hname; -
57 QString drvName; -
58 int port; -
59 QString connOptions; -
60 QString connName; -
61 QSql::NumericalPrecisionPolicy precisionPolicy; -
62 -
63 static QSqlDatabasePrivate *shared_null(); -
64 static QSqlDatabase database(const QString& name, bool open); -
65 static void addDatabase(const QSqlDatabase &db, const QString & name); -
66 static void removeDatabase(const QString& name); -
67 static void invalidateDb(const QSqlDatabase &db, const QString &name, bool doWarn = true); -
68 static DriverDict &driverDict(); -
69 static void cleanConnections(); -
70}; -
71 -
72QSqlDatabasePrivate::QSqlDatabasePrivate(const QSqlDatabasePrivate &other) : ref(1) -
73{ -
74 q = other.q; -
75 dbname = other.dbname; -
76 uname = other.uname; -
77 pword = other.pword; -
78 hname = other.hname; -
79 drvName = other.drvName; -
80 port = other.port; -
81 connOptions = other.connOptions; -
82 driver = other.driver; -
83 precisionPolicy = other.precisionPolicy; -
84}
never executed: }
0
85 -
86QSqlDatabasePrivate::~QSqlDatabasePrivate() -
87{ -
88 if (driver != shared_null()->driver)
evaluated: driver != shared_null()->driver
TRUEFALSE
yes
Evaluation Count:32
yes
Evaluation Count:13
13-32
89 delete driver;
executed: delete driver;
Execution Count:32
32
90}
executed: }
Execution Count:45
45
91 -
92void QSqlDatabasePrivate::cleanConnections() -
93{ -
94 QConnectionDict *dict = dbDict(); -
95 qt_noop(); -
96 QWriteLocker locker(&dict->lock); -
97 -
98 QConnectionDict::iterator it = dict->begin(); -
99 while (it != dict->end()) {
evaluated: it != dict->end()
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:22
6-22
100 invalidateDb(it.value(), it.key(), false); -
101 ++it; -
102 }
executed: }
Execution Count:6
6
103 dict->clear(); -
104}
executed: }
Execution Count:22
22
105 -
106static bool qDriverDictInit = false; -
107static void cleanDriverDict() -
108{ -
109 qDeleteAll(QSqlDatabasePrivate::driverDict()); -
110 QSqlDatabasePrivate::driverDict().clear(); -
111 QSqlDatabasePrivate::cleanConnections(); -
112 qDriverDictInit = false; -
113}
executed: }
Execution Count:22
22
114 -
115DriverDict &QSqlDatabasePrivate::driverDict() -
116{ -
117 static DriverDict dict; -
118 if (!qDriverDictInit) {
evaluated: !qDriverDictInit
TRUEFALSE
yes
Evaluation Count:22
yes
Evaluation Count:87
22-87
119 qDriverDictInit = true; -
120 qAddPostRoutine(cleanDriverDict); -
121 }
executed: }
Execution Count:22
22
122 return dict;
executed: return dict;
Execution Count:109
109
123} -
124 -
125QSqlDatabasePrivate *QSqlDatabasePrivate::shared_null() -
126{ -
127 static QSqlNullDriver dr; -
128 static QSqlDatabasePrivate n(__null, &dr); -
129 return &n;
executed: return &n;
Execution Count:7890
7890
130} -
131 -
132void QSqlDatabasePrivate::invalidateDb(const QSqlDatabase &db, const QString &name, bool doWarn) -
133{ -
134 if (db.d->ref.load() != 1 && doWarn) {
evaluated: db.d->ref.load() != 1
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:35
partially evaluated: doWarn
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-35
135 QMessageLogger("kernel/qsqldatabase.cpp", 234, __PRETTY_FUNCTION__).warning("QSqlDatabasePrivate::removeDatabase: connection '%s' is still in use, " -
136 "all queries will cease to work.", name.toLocal8Bit().constData()); -
137 db.d->disable(); -
138 db.d->connName.clear(); -
139 }
executed: }
Execution Count:1
1
140}
executed: }
Execution Count:36
36
141 -
142void QSqlDatabasePrivate::removeDatabase(const QString &name) -
143{ -
144 QConnectionDict *dict = dbDict(); -
145 qt_noop(); -
146 QWriteLocker locker(&dict->lock); -
147 -
148 if (!dict->contains(name))
partially evaluated: !dict->contains(name)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:30
0-30
149 return;
never executed: return;
0
150 -
151 invalidateDb(dict->take(name), name); -
152}
executed: }
Execution Count:30
30
153 -
154void QSqlDatabasePrivate::addDatabase(const QSqlDatabase &db, const QString &name) -
155{ -
156 QConnectionDict *dict = dbDict(); -
157 qt_noop(); -
158 QWriteLocker locker(&dict->lock); -
159 -
160 if (dict->contains(name)) {
partially evaluated: dict->contains(name)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:36
0-36
161 invalidateDb(dict->take(name), name); -
162 QMessageLogger("kernel/qsqldatabase.cpp", 261, __PRETTY_FUNCTION__).warning("QSqlDatabasePrivate::addDatabase: duplicate connection name '%s', old " -
163 "connection removed.", name.toLocal8Bit().data()); -
164 }
never executed: }
0
165 dict->insert(name, db); -
166 db.d->connName = name; -
167}
executed: }
Execution Count:36
36
168 -
169 -
170 -
171QSqlDatabase QSqlDatabasePrivate::database(const QString& name, bool open) -
172{ -
173 const QConnectionDict *dict = dbDict(); -
174 qt_noop(); -
175 -
176 dict->lock.lockForRead(); -
177 QSqlDatabase db = dict->value(name); -
178 dict->lock.unlock(); -
179 if (db.isValid() && !db.isOpen() && open) {
evaluated: db.isValid()
TRUEFALSE
yes
Evaluation Count:1940
yes
Evaluation Count:248
evaluated: !db.isOpen()
TRUEFALSE
yes
Evaluation Count:25
yes
Evaluation Count:1915
evaluated: open
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:20
5-1940
180 if (!db.open())
partially evaluated: !db.open()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
0-5
181 QMessageLogger("kernel/qsqldatabase.cpp", 280, __PRETTY_FUNCTION__).warning() << "QSqlDatabasePrivate::database: unable to open database:" << db.lastError().text();
never executed: QMessageLogger("kernel/qsqldatabase.cpp", 280, __PRETTY_FUNCTION__).warning() << "QSqlDatabasePrivate::database: unable to open database:" << db.lastError().text();
0
182 -
183 }
executed: }
Execution Count:5
5
184 return db;
executed: return db;
Execution Count:2188
2188
185} -
186 -
187 -
188 -
189 -
190 -
191void QSqlDatabasePrivate::copy(const QSqlDatabasePrivate *other) -
192{ -
193 q = other->q; -
194 dbname = other->dbname; -
195 uname = other->uname; -
196 pword = other->pword; -
197 hname = other->hname; -
198 drvName = other->drvName; -
199 port = other->port; -
200 connOptions = other->connOptions; -
201 precisionPolicy = other->precisionPolicy; -
202}
executed: }
Execution Count:7
7
203 -
204void QSqlDatabasePrivate::disable() -
205{ -
206 if (driver != shared_null()->driver) {
partially evaluated: driver != shared_null()->driver
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
207 delete driver; -
208 driver = shared_null()->driver; -
209 }
executed: }
Execution Count:1
1
210}
executed: }
Execution Count:1
1
211QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName) -
212{ -
213 QSqlDatabase db(type); -
214 QSqlDatabasePrivate::addDatabase(db, connectionName); -
215 return db;
executed: return db;
Execution Count:29
29
216} -
217QSqlDatabase QSqlDatabase::database(const QString& connectionName, bool open) -
218{ -
219 return QSqlDatabasePrivate::database(connectionName, open);
executed: return QSqlDatabasePrivate::database(connectionName, open);
Execution Count:2188
2188
220} -
221void QSqlDatabase::removeDatabase(const QString& connectionName) -
222{ -
223 QSqlDatabasePrivate::removeDatabase(connectionName); -
224}
executed: }
Execution Count:30
30
225 -
226 -
227 -
228 -
229 -
230 -
231 -
232QStringList QSqlDatabase::drivers() -
233{ -
234 QStringList list; -
235 if (QFactoryLoader *fl = loader()) {
partially evaluated: QFactoryLoader *fl = loader()
TRUEFALSE
yes
Evaluation Count:27
no
Evaluation Count:0
0-27
236 typedef QMultiMap<int, QString> PluginKeyMap; -
237 typedef PluginKeyMap::const_iterator PluginKeyMapConstIterator; -
238 -
239 const PluginKeyMap keyMap = fl->keyMap(); -
240 const PluginKeyMapConstIterator cend = keyMap.constEnd(); -
241 for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend; ++it)
evaluated: it != cend
TRUEFALSE
yes
Evaluation Count:270
yes
Evaluation Count:27
27-270
242 if (!list.contains(it.value()))
partially evaluated: !list.contains(it.value())
TRUEFALSE
yes
Evaluation Count:270
no
Evaluation Count:0
0-270
243 list << it.value();
executed: list << it.value();
Execution Count:270
270
244 }
executed: }
Execution Count:27
27
245 -
246 -
247 DriverDict dict = QSqlDatabasePrivate::driverDict(); -
248 for (DriverDict::const_iterator i = dict.constBegin(); i != dict.constEnd(); ++i) {
evaluated: i != dict.constEnd()
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:27
1-27
249 if (!list.contains(i.key()))
partially evaluated: !list.contains(i.key())
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
250 list << i.key();
executed: list << i.key();
Execution Count:1
1
251 }
executed: }
Execution Count:1
1
252 -
253 return list;
executed: return list;
Execution Count:27
27
254} -
255void QSqlDatabase::registerSqlDriver(const QString& name, QSqlDriverCreatorBase *creator) -
256{ -
257 delete QSqlDatabasePrivate::driverDict().take(name); -
258 if (creator)
partially evaluated: creator
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
259 QSqlDatabasePrivate::driverDict().insert(name, creator);
executed: QSqlDatabasePrivate::driverDict().insert(name, creator);
Execution Count:1
1
260}
executed: }
Execution Count:1
1
261bool QSqlDatabase::contains(const QString& connectionName) -
262{ -
263 return dbDict()->contains_ts(connectionName);
executed: return dbDict()->contains_ts(connectionName);
Execution Count:2
2
264} -
265QStringList QSqlDatabase::connectionNames() -
266{ -
267 return dbDict()->keys_ts();
never executed: return dbDict()->keys_ts();
0
268} -
269QSqlDatabase::QSqlDatabase(const QString &type) -
270{ -
271 d = new QSqlDatabasePrivate(this); -
272 d->init(type); -
273}
executed: }
Execution Count:36
36
274 -
275 -
276 -
277 -
278 -
279 -
280 -
281QSqlDatabase::QSqlDatabase(QSqlDriver *driver) -
282{ -
283 d = new QSqlDatabasePrivate(this, driver); -
284}
never executed: }
0
285 -
286 -
287 -
288 -
289 -
290 -
291QSqlDatabase::QSqlDatabase() -
292{ -
293 d = QSqlDatabasePrivate::shared_null(); -
294 d->ref.ref(); -
295}
executed: }
Execution Count:1246
1246
296 -
297 -
298 -
299 -
300QSqlDatabase::QSqlDatabase(const QSqlDatabase &other) -
301{ -
302 d = other.d; -
303 d->ref.ref(); -
304}
executed: }
Execution Count:17866
17866
305 -
306 -
307 -
308 -
309QSqlDatabase &QSqlDatabase::operator=(const QSqlDatabase &other) -
310{ -
311 qAtomicAssign(d, other.d); -
312 return *this;
executed: return *this;
Execution Count:948
948
313} -
314 -
315 -
316 -
317 -
318 -
319 -
320 -
321void QSqlDatabasePrivate::init(const QString &type) -
322{ -
323 drvName = type; -
324 -
325 if (!driver) {
partially evaluated: !driver
TRUEFALSE
yes
Evaluation Count:36
no
Evaluation Count:0
0-36
326 }
executed: }
Execution Count:36
36
327 -
328 if (!driver) {
partially evaluated: !driver
TRUEFALSE
yes
Evaluation Count:36
no
Evaluation Count:0
0-36
329 DriverDict dict = QSqlDatabasePrivate::driverDict(); -
330 for (DriverDict::const_iterator it = dict.constBegin(); -
331 it != dict.constEnd() && !driver; ++it) {
evaluated: it != dict.constEnd()
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:36
partially evaluated: !driver
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-36
332 if (type == it.key()) {
partially evaluated: type == it.key()
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
333 driver = ((QSqlDriverCreatorBase*)(*it))->createObject(); -
334 }
executed: }
Execution Count:1
1
335 }
executed: }
Execution Count:1
1
336 }
executed: }
Execution Count:36
36
337 -
338 -
339 if (!driver && loader())
evaluated: !driver
TRUEFALSE
yes
Evaluation Count:35
yes
Evaluation Count:1
partially evaluated: loader()
TRUEFALSE
yes
Evaluation Count:35
no
Evaluation Count:0
0-35
340 driver = qLoadPlugin<QSqlDriver, QSqlDriverPlugin>(loader(), type);
executed: driver = qLoadPlugin<QSqlDriver, QSqlDriverPlugin>(loader(), type);
Execution Count:35
35
341 -
342 -
343 if (!driver) {
evaluated: !driver
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:33
3-33
344 QMessageLogger("kernel/qsqldatabase.cpp", 785, __PRETTY_FUNCTION__).warning("QSqlDatabase: %s driver not loaded", type.toLatin1().data()); -
345 QMessageLogger("kernel/qsqldatabase.cpp", 786, __PRETTY_FUNCTION__).warning("QSqlDatabase: available drivers: %s", -
346 QSqlDatabase::drivers().join(QLatin1Char(' ')).toLatin1().data()); -
347 if (QCoreApplication::instance() == 0)
evaluated: QCoreApplication::instance() == 0
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:2
1-2
348 QMessageLogger("kernel/qsqldatabase.cpp", 789, __PRETTY_FUNCTION__).warning("QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins");
executed: QMessageLogger("kernel/qsqldatabase.cpp", 789, __PRETTY_FUNCTION__).warning("QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins");
Execution Count:1
1
349 driver = shared_null()->driver; -
350 }
executed: }
Execution Count:3
3
351}
executed: }
Execution Count:36
36
352QSqlDatabase::~QSqlDatabase() -
353{ -
354 if (!d->ref.deref()) {
evaluated: !d->ref.deref()
TRUEFALSE
yes
Evaluation Count:36
yes
Evaluation Count:19112
36-19112
355 close(); -
356 delete d; -
357 }
executed: }
Execution Count:36
36
358}
executed: }
Execution Count:19148
19148
359QSqlQuery QSqlDatabase::exec(const QString & query) const -
360{ -
361 QSqlQuery r(d->driver->createResult()); -
362 if (!query.isEmpty()) {
partially evaluated: !query.isEmpty()
TRUEFALSE
yes
Evaluation Count:16
no
Evaluation Count:0
0-16
363 r.exec(query); -
364 d->driver->setLastError(r.lastError()); -
365 }
executed: }
Execution Count:16
16
366 return r;
executed: return r;
Execution Count:16
16
367} -
368bool QSqlDatabase::open() -
369{ -
370 return d->driver->open(d->dbname, d->uname, d->pword, d->hname, 48
371 d->port, d->connOptions);
executed: return d->driver->open(d->dbname, d->uname, d->pword, d->hname, d->port, d->connOptions);
Execution Count:48
48
372} -
373bool QSqlDatabase::open(const QString& user, const QString& password) -
374{ -
375 setUserName(user); -
376 return d->driver->open(d->dbname, user, password, d->hname, 1
377 d->port, d->connOptions);
executed: return d->driver->open(d->dbname, user, password, d->hname, d->port, d->connOptions);
Execution Count:1
1
378} -
379void QSqlDatabase::close() -
380{ -
381 d->driver->close(); -
382}
executed: }
Execution Count:76
76
383 -
384 -
385 -
386 -
387 -
388 -
389bool QSqlDatabase::isOpen() const -
390{ -
391 return d->driver->isOpen();
executed: return d->driver->isOpen();
Execution Count:1999
1999
392} -
393 -
394 -
395 -
396 -
397 -
398 -
399 -
400bool QSqlDatabase::isOpenError() const -
401{ -
402 return d->driver->isOpenError();
executed: return d->driver->isOpenError();
Execution Count:10
10
403} -
404bool QSqlDatabase::transaction() -
405{ -
406 if (!d->driver->hasFeature(QSqlDriver::Transactions))
partially evaluated: !d->driver->hasFeature(QSqlDriver::Transactions)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
0-5
407 return false;
never executed: return false;
0
408 return d->driver->beginTransaction();
executed: return d->driver->beginTransaction();
Execution Count:5
5
409} -
410bool QSqlDatabase::commit() -
411{ -
412 if (!d->driver->hasFeature(QSqlDriver::Transactions))
partially evaluated: !d->driver->hasFeature(QSqlDriver::Transactions)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
413 return false;
never executed: return false;
0
414 return d->driver->commitTransaction();
executed: return d->driver->commitTransaction();
Execution Count:4
4
415} -
416bool QSqlDatabase::rollback() -
417{ -
418 if (!d->driver->hasFeature(QSqlDriver::Transactions))
partially evaluated: !d->driver->hasFeature(QSqlDriver::Transactions)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
419 return false;
never executed: return false;
0
420 return d->driver->rollbackTransaction();
executed: return d->driver->rollbackTransaction();
Execution Count:1
1
421} -
422void QSqlDatabase::setDatabaseName(const QString& name) -
423{ -
424 if (isValid())
partially evaluated: isValid()
TRUEFALSE
yes
Evaluation Count:26
no
Evaluation Count:0
0-26
425 d->dbname = name;
executed: d->dbname = name;
Execution Count:26
26
426}
executed: }
Execution Count:26
26
427void QSqlDatabase::setUserName(const QString& name) -
428{ -
429 if (isValid())
partially evaluated: isValid()
TRUEFALSE
yes
Evaluation Count:24
no
Evaluation Count:0
0-24
430 d->uname = name;
executed: d->uname = name;
Execution Count:24
24
431}
executed: }
Execution Count:24
24
432void QSqlDatabase::setPassword(const QString& password) -
433{ -
434 if (isValid())
partially evaluated: isValid()
TRUEFALSE
yes
Evaluation Count:23
no
Evaluation Count:0
0-23
435 d->pword = password;
executed: d->pword = password;
Execution Count:23
23
436}
executed: }
Execution Count:23
23
437void QSqlDatabase::setHostName(const QString& host) -
438{ -
439 if (isValid())
partially evaluated: isValid()
TRUEFALSE
yes
Evaluation Count:23
no
Evaluation Count:0
0-23
440 d->hname = host;
executed: d->hname = host;
Execution Count:23
23
441}
executed: }
Execution Count:23
23
442void QSqlDatabase::setPort(int port) -
443{ -
444 if (isValid())
partially evaluated: isValid()
TRUEFALSE
yes
Evaluation Count:21
no
Evaluation Count:0
0-21
445 d->port = port;
executed: d->port = port;
Execution Count:21
21
446}
executed: }
Execution Count:21
21
447 -
448 -
449 -
450 -
451 -
452 -
453 -
454QString QSqlDatabase::databaseName() const -
455{ -
456 return d->dbname;
executed: return d->dbname;
Execution Count:127
127
457} -
458 -
459 -
460 -
461 -
462 -
463 -
464QString QSqlDatabase::userName() const -
465{ -
466 return d->uname;
executed: return d->uname;
Execution Count:2
2
467} -
468 -
469 -
470 -
471 -
472 -
473 -
474QString QSqlDatabase::password() const -
475{ -
476 return d->pword;
executed: return d->pword;
Execution Count:2
2
477} -
478 -
479 -
480 -
481 -
482 -
483 -
484QString QSqlDatabase::hostName() const -
485{ -
486 return d->hname;
executed: return d->hname;
Execution Count:11429
11429
487} -
488 -
489 -
490 -
491 -
492 -
493 -
494QString QSqlDatabase::driverName() const -
495{ -
496 return d->drvName;
executed: return d->drvName;
Execution Count:34794
34794
497} -
498 -
499 -
500 -
501 -
502 -
503 -
504 -
505int QSqlDatabase::port() const -
506{ -
507 return d->port;
executed: return d->port;
Execution Count:11403
11403
508} -
509QSqlDriver* QSqlDatabase::driver() const -
510{ -
511 return d->driver;
executed: return d->driver;
Execution Count:3533
3533
512} -
513QSqlError QSqlDatabase::lastError() const -
514{ -
515 return d->driver->lastError();
executed: return d->driver->lastError();
Execution Count:29
29
516} -
517QStringList QSqlDatabase::tables(QSql::TableType type) const -
518{ -
519 return d->driver->tables(type);
executed: return d->driver->tables(type);
Execution Count:50
50
520} -
521QSqlIndex QSqlDatabase::primaryIndex(const QString& tablename) const -
522{ -
523 return d->driver->primaryIndex(tablename);
executed: return d->driver->primaryIndex(tablename);
Execution Count:180
180
524} -
525QSqlRecord QSqlDatabase::record(const QString& tablename) const -
526{ -
527 return d->driver->record(tablename);
executed: return d->driver->record(tablename);
Execution Count:318
318
528} -
529void QSqlDatabase::setConnectOptions(const QString &options) -
530{ -
531 if (isValid())
partially evaluated: isValid()
TRUEFALSE
yes
Evaluation Count:22
no
Evaluation Count:0
0-22
532 d->connOptions = options;
executed: d->connOptions = options;
Execution Count:22
22
533}
executed: }
Execution Count:22
22
534 -
535 -
536 -
537 -
538 -
539 -
540 -
541QString QSqlDatabase::connectOptions() const -
542{ -
543 return d->connOptions;
never executed: return d->connOptions;
0
544} -
545bool QSqlDatabase::isDriverAvailable(const QString& name) -
546{ -
547 return drivers().contains(name);
never executed: return drivers().contains(name);
0
548} -
549QSqlDatabase QSqlDatabase::addDatabase(QSqlDriver* driver, const QString& connectionName) -
550{ -
551 QSqlDatabase db(driver); -
552 QSqlDatabasePrivate::addDatabase(db, connectionName); -
553 return db;
never executed: return db;
0
554} -
555 -
556 -
557 -
558 -
559 -
560 -
561 -
562bool QSqlDatabase::isValid() const -
563{ -
564 return d->driver && d->driver != d->shared_null()->driver;
executed: return d->driver && d->driver != d->shared_null()->driver;
Execution Count:6594
6594
565} -
566QSqlDatabase QSqlDatabase::cloneDatabase(const QSqlDatabase &other, const QString &connectionName) -
567{ -
568 if (!other.isValid())
partially evaluated: !other.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7
0-7
569 return QSqlDatabase();
never executed: return QSqlDatabase();
0
570 -
571 QSqlDatabase db(other.driverName()); -
572 db.d->copy(other.d); -
573 QSqlDatabasePrivate::addDatabase(db, connectionName); -
574 return db;
executed: return db;
Execution Count:7
7
575} -
576QString QSqlDatabase::connectionName() const -
577{ -
578 return d->connName;
executed: return d->connName;
Execution Count:4
4
579} -
580void QSqlDatabase::setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy) -
581{ -
582 if(driver())
partially evaluated: driver()
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
583 driver()->setNumericalPrecisionPolicy(precisionPolicy);
executed: driver()->setNumericalPrecisionPolicy(precisionPolicy);
Execution Count:2
2
584 d->precisionPolicy = precisionPolicy; -
585}
executed: }
Execution Count:2
2
586QSql::NumericalPrecisionPolicy QSqlDatabase::numericalPrecisionPolicy() const -
587{ -
588 if(driver())
partially evaluated: driver()
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
589 return driver()->numericalPrecisionPolicy();
executed: return driver()->numericalPrecisionPolicy();
Execution Count:1
1
590 else -
591 return d->precisionPolicy;
never executed: return d->precisionPolicy;
0
592} -
593 -
594 -
595 -
596QDebug operator<<(QDebug dbg, const QSqlDatabase &d) -
597{ -
598 if (!d.isValid()) {
never evaluated: !d.isValid()
0
599 dbg.nospace() << "QSqlDatabase(invalid)"; -
600 return dbg.space();
never executed: return dbg.space();
0
601 } -
602 -
603 dbg.nospace() << "QSqlDatabase(driver=\"" << d.driverName() << "\", database=\"" -
604 << d.databaseName() << "\", host=\"" << d.hostName() << "\", port=" << d.port() -
605 << ", user=\"" << d.userName() << "\", open=" << d.isOpen() << ")"; -
606 return dbg.space();
never executed: return dbg.space();
0
607} -
608 -
609 -
610 -
611 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial