QtSql: fix code snippets

The code snippets retrieving the native database driver handles was
using qstrcmp() wrong since that is returning 0 when the strings are
equal. In some snippets there was even a plain char * comparison which
would not work at all.
Fix all the places by correctly using qstrcmp() and replace the checks
for the valid pointer by not checking for 0.

Fixes: QTBUG-70598
Change-Id: I5c53dcfc51c958203fc60fa6a23dd6b27faa1d96
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
bb10
Christian Ehrlicher 2018-09-23 14:25:44 +02:00
parent 91d43a48f7
commit 5f9a0d64b3
3 changed files with 13 additions and 13 deletions

View File

@ -106,7 +106,7 @@ while (query.next()) {
QVariant v = query.result()->handle();
if (qstrcmp(v.typeName(), "PGresult*") == 0) {
PGresult *handle = *static_cast<PGresult **>(v.data());
if (handle != 0) {
if (handle) {
// Do something...
}
}

View File

@ -51,10 +51,10 @@
//! [0]
QSqlDatabase db = ...;
QVariant v = db.driver()->handle();
if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*")==0) {
if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) {
// v.data() returns a pointer to the handle
sqlite3 *handle = *static_cast<sqlite3 **>(v.data());
if (handle != 0) { // check that it is not NULL
if (handle) {
...
}
}
@ -62,13 +62,13 @@ if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*")==0) {
//! [1]
if (qstrcmp(v.typeName(), "PGconn*")) {
if (qstrcmp(v.typeName(), "PGconn*") == 0) {
PGconn *handle = *static_cast<PGconn **>(v.data());
if (handle != 0) ...
if (handle) ...
}
if (qstrcmp(v.typeName(), "MYSQL*")) {
if (qstrcmp(v.typeName(), "MYSQL*") == 0) {
MYSQL *handle = *static_cast<MYSQL **>(v.data());
if (handle != 0) ...
if (handle) ...
}
//! [1]

View File

@ -72,10 +72,10 @@ if (!q.execBatch())
//! [1]
QSqlQuery query = ...
QVariant v = query.result()->handle();
if (v.isValid() && qstrcmp(v.typeName(), "sqlite3_stmt*")) {
if (v.isValid() && qstrcmp(v.typeName(), "sqlite3_stmt*") == 0) {
// v.data() returns a pointer to the handle
sqlite3_stmt *handle = *static_cast<sqlite3_stmt **>(v.data());
if (handle != 0) { // check that it is not NULL
if (handle) {
...
}
}
@ -83,13 +83,13 @@ if (v.isValid() && qstrcmp(v.typeName(), "sqlite3_stmt*")) {
//! [2]
if (v.typeName() == "PGresult*") {
if (qstrcmp(v.typeName(), "PGresult*") == 0) {
PGresult *handle = *static_cast<PGresult **>(v.data());
if (handle != 0) ...
if (handle) ...
}
if (v.typeName() == "MYSQL_STMT*") {
if (qstrcmp(v.typeName(), "MYSQL_STMT*") == 0) {
MYSQL_STMT *handle = *static_cast<MYSQL_STMT **>(v.data());
if (handle != 0) ...
if (handle) ...
}
//! [2]