From 7e1fd4f5df8b97bc7e4963f8b9346e31d9ec2555 Mon Sep 17 00:00:00 2001 From: ultrageese Date: Thu, 14 May 2026 19:15:35 +1000 Subject: [PATCH] =?UTF-8?q?=D0=AF=20=D1=82=D0=B0=D0=BA=D0=B0=D1=8F=20?= =?UTF-8?q?=D1=82=D1=83=D0=BF=D0=B0=D1=8F=20=D0=B1=D0=BB=D0=B8=D0=BD=20?= =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/Cargo.lock | 27 +++++++++++++++++++++++++++ code/Cargo.toml | 2 +- code/src/database.rs | 9 ++++----- code/src/models.rs | 4 +++- 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/code/Cargo.lock b/code/Cargo.lock index de570ed..078775b 100644 --- a/code/Cargo.lock +++ b/code/Cargo.lock @@ -445,6 +445,19 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" +[[package]] +name = "bigdecimal" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6867f1565b3aad85681f1015055b087fcfd840d6aeee6eee7f2da317603695" +dependencies = [ + "autocfg", + "libm", + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "bit-set" version = "0.9.1" @@ -2340,6 +2353,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint-dig" version = "0.8.6" @@ -3777,6 +3800,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" dependencies = [ "base64", + "bigdecimal", "bytes", "crc", "crossbeam-queue", @@ -3850,6 +3874,7 @@ checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" dependencies = [ "atoi", "base64", + "bigdecimal", "bitflags 2.11.1", "byteorder", "bytes", @@ -3892,6 +3917,7 @@ checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" dependencies = [ "atoi", "base64", + "bigdecimal", "bitflags 2.11.1", "byteorder", "crc", @@ -3908,6 +3934,7 @@ dependencies = [ "log", "md-5", "memchr", + "num-bigint", "once_cell", "rand", "serde", diff --git a/code/Cargo.toml b/code/Cargo.toml index 8821d4e..07d1ca2 100644 --- a/code/Cargo.toml +++ b/code/Cargo.toml @@ -12,7 +12,7 @@ egui = "0.34.2" egui_dock = "0.19.1" egui_extras = "0.34.2" rust_decimal = {version = "1.42.0", features = ["macros"]} -sqlx = {version="0.8.6", features = ["runtime-tokio", "mysql"]} +sqlx = {version="0.8.6", features = ["runtime-tokio", "mysql","bigdecimal"]} [target.'cfg(target_os="windows")'.dependencies] eframe = {version ="0.34.2",default-features=false, features=["glow"]} diff --git a/code/src/database.rs b/code/src/database.rs index 4976674..6d9cbf3 100644 --- a/code/src/database.rs +++ b/code/src/database.rs @@ -21,15 +21,14 @@ impl DBOperator{ } -async fn get_position(pool: &MySqlPool) -> anyhow::Result<()>{ - let rets = sqlx::query!(r#"SELECT * FROM position"#) - .fetch_all(*pool) - .await?; - Ok(()) +async fn get_position(pool: &MySqlPool) -> Result, sqlx::Error>{ + let rets: Vec = sqlx::query_as:: <_, Position>("SELECT * FROM `position`").fetch_all(pool).await?; + Ok(rets) } + pub async fn estabilish_connection() -> Result<(), sqlx::Error>{ dotenv().ok(); let db_url = dotenv::var("DATABASE_URL").expect("DATABASE_URL установи!"); diff --git a/code/src/models.rs b/code/src/models.rs index afe6374..3a6448d 100644 --- a/code/src/models.rs +++ b/code/src/models.rs @@ -1,9 +1,11 @@ +use sqlx::types::BigDecimal; + #[derive(Default, Clone, Hash, sqlx::FromRow)] pub struct Position{ id: i32, name: String, - wage: rust_decimal::Decimal, + wage: BigDecimal, } #[derive(Default, Clone, Hash)] pub struct Worker{