From 5b3dbd38ca7685368c878dabcffeef2c3339711a Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Wed, 13 Jan 2021 13:23:30 +0100 Subject: [PATCH] Interbase: Don't error out if closing an already closed cursor Change-Id: If6964f5ae45c5ca4c0b34e417326fea1f33d7628 Reviewed-by: Christian Ehrlicher (cherry picked from commit 4d3d981144d810fbf1fe263741d36b07a9227621) Reviewed-by: Qt Cherry-pick Bot --- src/plugins/sqldrivers/ibase/qsql_ibase.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp index 82ea0919a59..384bb93fd70 100644 --- a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp +++ b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp @@ -1060,8 +1060,14 @@ bool QIBaseResult::exec() if (ok) { isc_dsql_free_statement(d->status, &d->stmt, DSQL_close); - if (d->isError(QT_TRANSLATE_NOOP("QIBaseResult", "Unable to close statement"))) + QString imsg; + ISC_LONG sqlcode; + if (getIBaseError(imsg, d->status, sqlcode) && sqlcode != -501) { + setLastError(QSqlError(QCoreApplication::translate("QIBaseResult", "Unable to close statement"), + imsg, QSqlError::UnknownError, + sqlcode != -1 ? QString::number(sqlcode) : QString())); return false; + } if (colCount() && d->queryType != isc_info_sql_stmt_exec_procedure) { cleanup(); }