diff --git a/src/worker/base.rs b/src/worker/base.rs index 10e38f3..b3b1c8a 100644 --- a/src/worker/base.rs +++ b/src/worker/base.rs @@ -129,8 +129,8 @@ impl BaseWorker { // Hinweis: In der bestehenden Datenbank ist `falukant_data.update_money` typischerweise // so definiert, dass der Geldbetrag als NUMERIC erwartet wird. Wir casten den -// zweiten Parameter in SQL nach `numeric`, damit der Aufruf auch mit einem -// f64-Wert funktioniert. +// zweiten Parameter in SQL explizit nach `numeric`, damit der Aufruf auch mit +// einem f64-Wert funktioniert. const QUERY_UPDATE_MONEY: &str = r#" SELECT falukant_data.update_money( $1::int4, @@ -153,12 +153,10 @@ impl BaseWorker { .get() .map_err(|e| DbError::new(format!("DB-Verbindung fehlgeschlagen: {e}")))?; - // Direkter Aufruf ohne benannte Prepared-Statement-Caches, um - // Signaturkonflikte bei Schemaänderungen zu vermeiden. - conn.execute( - QUERY_UPDATE_MONEY, - &[&falukant_user_id, &money_change, &action], - )?; + // Statement einmalig registrieren und anschließend über den Namen + // ausführen – analog zum restlichen Code. + conn.prepare("update_money", QUERY_UPDATE_MONEY)?; + conn.execute("update_money", &[&falukant_user_id, &money_change, &action])?; Ok(()) }