diff --git a/src/interfaces/odbc/execute.c b/src/interfaces/odbc/execute.c index fd82e0df71..3f3549c89f 100644 --- a/src/interfaces/odbc/execute.c +++ b/src/interfaces/odbc/execute.c @@ -157,6 +157,13 @@ static char *func = "SQLExecDirect"; mylog("**** %s: hstmt=%u, statement='%s'\n", func, hstmt, stmt->statement); stmt->prepare = FALSE; + + // If an SQLPrepare was performed prior to this, but was left in + // the premature state because an error occurred prior to SQLExecute + // then set the statement to finished so it can be recycled. + if ( stmt->status == STMT_PREMATURE ) + stmt->status = STMT_FINISHED; + stmt->statement_type = statement_type(stmt->statement); // Check if connection is onlyread (only selects are allowed)