diff options
| author | Geir Vattekar <geir.vattekar@trolltech.com> | 2009-05-15 13:23:00 (GMT) |
|---|---|---|
| committer | Geir Vattekar <geir.vattekar@trolltech.com> | 2009-05-15 13:23:00 (GMT) |
| commit | fe7040348d82c5e5d302e7ec674fc0e3f68f06e1 (patch) | |
| tree | 6b40b8c1e69a044aebd23f7b137d9abb4720b5e8 /src/sql/drivers/ibase/qsql_ibase.cpp | |
| parent | a830e5f22a42d00b0b92544cfcb56c79b2c3b6cd (diff) | |
| parent | 3875cd2b0a81c190939ea2803a2efbe890ae38ec (diff) | |
| download | Qt-fe7040348d82c5e5d302e7ec674fc0e3f68f06e1.zip Qt-fe7040348d82c5e5d302e7ec674fc0e3f68f06e1.tar.gz Qt-fe7040348d82c5e5d302e7ec674fc0e3f68f06e1.tar.bz2 | |
Merge branch '4.5' of git@scm.dev.nokia.troll.no:qt/qt into 4.5
Diffstat (limited to 'src/sql/drivers/ibase/qsql_ibase.cpp')
| -rw-r--r-- | src/sql/drivers/ibase/qsql_ibase.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/sql/drivers/ibase/qsql_ibase.cpp b/src/sql/drivers/ibase/qsql_ibase.cpp index 9eeb41d..4f3d79d 100644 --- a/src/sql/drivers/ibase/qsql_ibase.cpp +++ b/src/sql/drivers/ibase/qsql_ibase.cpp @@ -66,8 +66,11 @@ QT_BEGIN_NAMESPACE enum { QIBaseChunkSize = SHRT_MAX / 2 }; -static bool getIBaseError(QString& msg, ISC_STATUS* status, ISC_LONG &sqlcode, - QTextCodec *tc) +#if defined(FB_API_VER) && FB_API_VER >= 20 +static bool getIBaseError(QString& msg, const ISC_STATUS* status, ISC_LONG &sqlcode, QTextCodec *tc) +#else +static bool getIBaseError(QString& msg, ISC_STATUS* status, ISC_LONG &sqlcode, QTextCodec *tc) +#endif { if (status[0] != 1 || status[1] <= 0) return false; @@ -75,7 +78,11 @@ static bool getIBaseError(QString& msg, ISC_STATUS* status, ISC_LONG &sqlcode, msg.clear(); sqlcode = isc_sqlcode(status); char buf[512]; +#if defined(FB_API_VER) && FB_API_VER >= 20 + while(fb_interpret(buf, 512, &status)) { +#else while(isc_interprete(buf, &status)) { +#endif if(!msg.isEmpty()) msg += QLatin1String(" - "); if (tc) @@ -871,7 +878,7 @@ QIBaseResult::~QIBaseResult() bool QIBaseResult::prepare(const QString& query) { - //qDebug("prepare: %s\n", qPrintable(query)); +// qDebug("prepare: %s", qPrintable(query)); if (!driver() || !driver()->isOpen() || driver()->isOpenError()) return false; d->cleanup(); @@ -1025,7 +1032,7 @@ bool QIBaseResult::exec() } if (ok) { - if (colCount()) { + if (colCount() && d->queryType != isc_info_sql_stmt_exec_procedure) { isc_dsql_free_statement(d->status, &d->stmt, DSQL_close); if (d->isError(QT_TRANSLATE_NOOP("QIBaseResult", "Unable to close statement"))) return false; @@ -1039,7 +1046,7 @@ bool QIBaseResult::exec() return false; // Not all stored procedures necessarily return values. - if (d->queryType == isc_info_sql_stmt_exec_procedure && d->sqlda->sqld == 0) + if (d->queryType == isc_info_sql_stmt_exec_procedure && d->sqlda && d->sqlda->sqld == 0) delDA(d->sqlda); if (d->sqlda) |
