diff options
-rw-r--r-- | connectivity/source/drivers/firebird/PreparedStatement.cxx | 13 |
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, |