Refactor SQL execution in BaseWorker: Updated the money update logic to register and execute prepared statements by name, enhancing clarity and consistency with existing code. Improved comments for better understanding of numeric type handling in SQL queries.
This commit is contained in:
@@ -129,8 +129,8 @@ impl BaseWorker {
|
|||||||
|
|
||||||
// Hinweis: In der bestehenden Datenbank ist `falukant_data.update_money` typischerweise
|
// Hinweis: In der bestehenden Datenbank ist `falukant_data.update_money` typischerweise
|
||||||
// so definiert, dass der Geldbetrag als NUMERIC erwartet wird. Wir casten den
|
// so definiert, dass der Geldbetrag als NUMERIC erwartet wird. Wir casten den
|
||||||
// zweiten Parameter in SQL nach `numeric`, damit der Aufruf auch mit einem
|
// zweiten Parameter in SQL explizit nach `numeric`, damit der Aufruf auch mit
|
||||||
// f64-Wert funktioniert.
|
// einem f64-Wert funktioniert.
|
||||||
const QUERY_UPDATE_MONEY: &str = r#"
|
const QUERY_UPDATE_MONEY: &str = r#"
|
||||||
SELECT falukant_data.update_money(
|
SELECT falukant_data.update_money(
|
||||||
$1::int4,
|
$1::int4,
|
||||||
@@ -153,12 +153,10 @@ impl BaseWorker {
|
|||||||
.get()
|
.get()
|
||||||
.map_err(|e| DbError::new(format!("DB-Verbindung fehlgeschlagen: {e}")))?;
|
.map_err(|e| DbError::new(format!("DB-Verbindung fehlgeschlagen: {e}")))?;
|
||||||
|
|
||||||
// Direkter Aufruf ohne benannte Prepared-Statement-Caches, um
|
// Statement einmalig registrieren und anschließend über den Namen
|
||||||
// Signaturkonflikte bei Schemaänderungen zu vermeiden.
|
// ausführen – analog zum restlichen Code.
|
||||||
conn.execute(
|
conn.prepare("update_money", QUERY_UPDATE_MONEY)?;
|
||||||
QUERY_UPDATE_MONEY,
|
conn.execute("update_money", &[&falukant_user_id, &money_change, &action])?;
|
||||||
&[&falukant_user_id, &money_change, &action],
|
|
||||||
)?;
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user