rlm_sql_firebird_conn_t *conn = (rlm_sql_firebird_conn_t *) query_ctx->handle->conn;
fb_commit(conn);
- fb_close_cursor(conn);
+ fb_free_statement(conn);
+ talloc_free_children(conn->sqlda_out);
return 0;
}
*/
static sql_rcode_t sql_finish_query(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
+ rlm_sql_firebird_conn_t *conn = (rlm_sql_firebird_conn_t *) query_ctx->handle->conn;
+
+ fb_free_statement(conn);
+ talloc_free_children(conn->sqlda_out);
+
return 0;
}
}
}
- fb_free_statement(conn);
if (!conn->stmt) {
isc_dsql_allocate_statement(conn->status, &conn->dbh,
&conn->stmt);
}
}
- fb_free_sqlda(conn->sqlda_out);
isc_dsql_prepare(conn->status, &conn->trh, &conn->stmt, 0, query,
conn->sql_dialect, conn->sqlda_out);
if (IS_ISC_ERROR(conn->status)) {
return affected_rows;
}
-int fb_close_cursor(rlm_sql_firebird_conn_t *conn) {
- isc_dsql_free_statement(conn->status, &conn->stmt, DSQL_close);
-
- return fb_error(conn);
-}
-
void fb_free_statement(rlm_sql_firebird_conn_t *conn) {
if (conn->stmt) {
isc_dsql_free_statement(conn->status, &conn->stmt, DSQL_drop);
int fb_fetch(rlm_sql_firebird_conn_t *conn);
void fb_free_sqlda(XSQLDA *sqlda);
void fb_free_statement(rlm_sql_firebird_conn_t *conn);
-int fb_close_cursor(rlm_sql_firebird_conn_t *conn);
int fb_rollback(rlm_sql_firebird_conn_t *conn);
int fb_commit(rlm_sql_firebird_conn_t *conn);
void fb_store_row(rlm_sql_firebird_conn_t *conn);