diff options
Diffstat (limited to 'src/sql')
-rw-r--r-- | src/sql/drivers/db2/qsql_db2.cpp | 5 | ||||
-rw-r--r-- | src/sql/drivers/mysql/qsql_mysql.cpp | 12 | ||||
-rw-r--r-- | src/sql/drivers/oci/qsql_oci.cpp | 11 | ||||
-rw-r--r-- | src/sql/drivers/odbc/qsql_odbc.cpp | 5 | ||||
-rw-r--r-- | src/sql/drivers/psql/qsql_psql.cpp | 5 | ||||
-rw-r--r-- | src/sql/drivers/sqlite/qsql_sqlite.cpp | 5 | ||||
-rw-r--r-- | src/sql/drivers/sqlite2/qsql_sqlite2.cpp | 5 | ||||
-rw-r--r-- | src/sql/drivers/tds/qsql_tds.cpp | 6 | ||||
-rw-r--r-- | src/sql/kernel/qsqlcachedresult.cpp | 5 | ||||
-rw-r--r-- | src/sql/kernel/qsqlresult.h | 2 |
10 files changed, 23 insertions, 38 deletions
diff --git a/src/sql/drivers/db2/qsql_db2.cpp b/src/sql/drivers/db2/qsql_db2.cpp index ac3489f675..0d5c52a36c 100644 --- a/src/sql/drivers/db2/qsql_db2.cpp +++ b/src/sql/drivers/db2/qsql_db2.cpp @@ -1119,10 +1119,7 @@ bool QDB2Result::nextResult() void QDB2Result::virtual_hook(int id, void *data) { - switch (id) { - default: - QSqlResult::virtual_hook(id, data); - } + QSqlResult::virtual_hook(id, data); } void QDB2Result::detachFromResultSet() diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp index 6cc9edffa8..6a5d67f80b 100644 --- a/src/sql/drivers/mysql/qsql_mysql.cpp +++ b/src/sql/drivers/mysql/qsql_mysql.cpp @@ -838,10 +838,7 @@ bool QMYSQLResult::nextResult() void QMYSQLResult::virtual_hook(int id, void *data) { - switch (id) { - default: - QSqlResult::virtual_hook(id, data); - } + QSqlResult::virtual_hook(id, data); } @@ -987,11 +984,16 @@ bool QMYSQLResult::exec() break; } case QVariant::UInt: case QVariant::Int: - case QVariant::Bool: currBind->buffer_type = MYSQL_TYPE_LONG; currBind->buffer = data; currBind->buffer_length = sizeof(int); currBind->is_unsigned = (val.type() != QVariant::Int); + break; + case QVariant::Bool: + currBind->buffer_type = MYSQL_TYPE_TINY; + currBind->buffer = data; + currBind->buffer_length = sizeof(bool); + currBind->is_unsigned = false; break; case QVariant::Double: currBind->buffer_type = MYSQL_TYPE_DOUBLE; diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp index f0f77339e5..b467fdc6d2 100644 --- a/src/sql/drivers/oci/qsql_oci.cpp +++ b/src/sql/drivers/oci/qsql_oci.cpp @@ -82,7 +82,9 @@ //#define QOCI_DEBUG +Q_DECLARE_OPAQUE_POINTER(OCIEnv*); Q_DECLARE_METATYPE(OCIEnv*) +Q_DECLARE_OPAQUE_POINTER(OCIStmt*); Q_DECLARE_METATYPE(OCIStmt*) QT_BEGIN_NAMESPACE @@ -2040,18 +2042,15 @@ QVariant QOCIResult::lastInsertId() const bool QOCIResult::execBatch(bool arrayBind) { QOCICols::execBatch(d, boundValues(), arrayBind); - d->resetBindCount(); - return d->error.type() == QSqlError::NoError; + resetBindCount(); + return lastError().type() == QSqlError::NoError; } void QOCIResult::virtual_hook(int id, void *data) { Q_ASSERT(data); - switch (id) { - default: - QSqlCachedResult::virtual_hook(id, data); - } + QSqlCachedResult::virtual_hook(id, data); } //////////////////////////////////////////////////////////////////////////// diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp index 2cb8fcc100..0eb078b0e4 100644 --- a/src/sql/drivers/odbc/qsql_odbc.cpp +++ b/src/sql/drivers/odbc/qsql_odbc.cpp @@ -1723,10 +1723,7 @@ bool QODBCResult::nextResult() void QODBCResult::virtual_hook(int id, void *data) { - switch (id) { - default: - QSqlResult::virtual_hook(id, data); - } + QSqlResult::virtual_hook(id, data); } void QODBCResult::detachFromResultSet() diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index 6211f25cca..8a0e2b86ea 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -512,10 +512,7 @@ void QPSQLResult::virtual_hook(int id, void *data) { Q_ASSERT(data); - switch (id) { - default: - QSqlResult::virtual_hook(id, data); - } + QSqlResult::virtual_hook(id, data); } static QString qReplacePlaceholderMarkers(const QString &query) diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp index debc304a80..595ef496ec 100644 --- a/src/sql/drivers/sqlite/qsql_sqlite.cpp +++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp @@ -333,10 +333,7 @@ QSQLiteResult::~QSQLiteResult() void QSQLiteResult::virtual_hook(int id, void *data) { - switch (id) { - default: - QSqlCachedResult::virtual_hook(id, data); - } + QSqlCachedResult::virtual_hook(id, data); } bool QSQLiteResult::reset(const QString &query) diff --git a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp index 5dc292c39b..9dce21e9bd 100644 --- a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp +++ b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp @@ -266,10 +266,7 @@ QSQLite2Result::~QSQLite2Result() void QSQLite2Result::virtual_hook(int id, void *data) { - switch (id) { - default: - QSqlCachedResult::virtual_hook(id, data); - } + QSqlCachedResult::virtual_hook(id, data); } /* diff --git a/src/sql/drivers/tds/qsql_tds.cpp b/src/sql/drivers/tds/qsql_tds.cpp index 35195c6f02..f740360550 100644 --- a/src/sql/drivers/tds/qsql_tds.cpp +++ b/src/sql/drivers/tds/qsql_tds.cpp @@ -138,10 +138,11 @@ QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, int errNo = class QTDSDriverPrivate { public: - QTDSDriverPrivate(): login(0) {} + QTDSDriverPrivate(): login(0), initialized(false) {} LOGINREC* login; // login information QString hostName; QString db; + bool initialized; }; @@ -537,6 +538,7 @@ QVariant QTDSDriver::handle() const void QTDSDriver::init() { d = new QTDSDriverPrivate(); + d->initialized = (dbinit() == SUCCEED); // the following two code-lines will fail compilation on some FreeTDS versions // just comment them out if you have FreeTDS (you won't get any errors and warnings then) dberrhandle((QERRHANDLE)qTdsErrHandler); @@ -578,7 +580,7 @@ bool QTDSDriver::open(const QString & db, { if (isOpen()) close(); - if (!dbinit()) { + if (!d->initialized) { setOpenError(true); return false; } diff --git a/src/sql/kernel/qsqlcachedresult.cpp b/src/sql/kernel/qsqlcachedresult.cpp index 103fb0aeab..9a817da8ea 100644 --- a/src/sql/kernel/qsqlcachedresult.cpp +++ b/src/sql/kernel/qsqlcachedresult.cpp @@ -304,10 +304,7 @@ QSqlCachedResult::ValueCache &QSqlCachedResult::cache() void QSqlCachedResult::virtual_hook(int id, void *data) { - switch (id) { - default: - QSqlResult::virtual_hook(id, data); - } + QSqlResult::virtual_hook(id, data); } void QSqlCachedResult::detachFromResultSet() diff --git a/src/sql/kernel/qsqlresult.h b/src/sql/kernel/qsqlresult.h index 153af92096..5037ce1dc5 100644 --- a/src/sql/kernel/qsqlresult.h +++ b/src/sql/kernel/qsqlresult.h @@ -132,10 +132,10 @@ protected: virtual void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy policy); QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const; virtual bool nextResult(); + void resetBindCount(); // HACK private: QSqlResultPrivate* d; - void resetBindCount(); // HACK private: Q_DISABLE_COPY(QSqlResult) |