summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--connectivity/source/drivers/firebird/PreparedStatement.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx
index 024c9aef88d9..ddb10e05eb60 100644
--- a/connectivity/source/drivers/firebird/PreparedStatement.cxx
+++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx
@@ -265,6 +265,19 @@ sal_Bool SAL_CALL OPreparedStatement::execute()
ISC_STATUS aErr;
+ if (m_xResultSet.is()) // Checks whether we have already run the statement.
+ {
+ disposeResultSet();
+ // Closes the cursor from the last run.
+ aErr = isc_dsql_free_statement(m_statusVector,
+ &m_aStatementHandle,
+ DSQL_close);
+ if (aErr)
+ evaluateStatusVector(m_statusVector,
+ "isc_dsql_free_statement: close cursor",
+ *this);
+ }
+
aErr = isc_dsql_execute(m_statusVector,
&m_pConnection->getTransaction(),
&m_aStatementHandle,