alphacyberranger@sh.itjust.works to Programmer Humor@lemmy.mlEnglish · 2 years agoYoda might be running on multi-threadingsh.itjust.worksexternal-linkmessage-square22linkfedilinkarrow-up1865arrow-down111
arrow-up1854arrow-down1external-linkYoda might be running on multi-threadingsh.itjust.worksalphacyberranger@sh.itjust.works to Programmer Humor@lemmy.mlEnglish · 2 years agomessage-square22linkfedilink
minus-squareCián :molotov:@hispagatos.spacelinkfedilinkarrow-up1·2 years ago@bappity @RustyNova I was stuck on the same thing, there’s no way to make it compatible? How do you handle dates?
minus-squareRustyNova@lemmy.worldlinkfedilinkarrow-up2·2 years agoNo idea for Tiberius, but for SQLite I’m stuck with converting to timestamp and back. Ugly but works P.S. add a getter to your data struct and you can be “seamless”
minus-squareBappity@lemmy.worldlinkfedilinkEnglisharrow-up1·2 years agoI switched to using tiberius bit different but not too hard don’t have my code on hand atm but this is how I started with it let mut config = Config::new(); config.host("your_server_name"); config.database("your_database_name"); config.authentication(tiberius::AuthMethod::sql_server("your_username", "your_password")); config.trust_cert(); let tcp = TcpStream::connect(config.get_addr()).await?; tcp.set_nodelay(true)?; let mut client = Client::connect(config, tcp.compat_write()).await?; then I did something along the lines of fn main() { let stream = client.query(&query, &[]).await?; let rows = stream.into_first_result().await?; let db_data: Vec<MyObject> = rows.into_iter().map(mapping_function_i_made_for_myobject).collect(); } fn mapping_function_i_made_for_myobject(row: Row) -> MyObject { MyObject { my_date_field: row.get::<NaiveDateTime, _>("my_date_field").map(|dt| Local.from_local_datetime(&dt).unwrap()), } }
@bappity @RustyNova I was stuck on the same thing, there’s no way to make it compatible? How do you handle dates?
No idea for Tiberius, but for SQLite I’m stuck with converting to timestamp and back. Ugly but works
P.S. add a getter to your data struct and you can be “seamless”
I switched to using tiberius
bit different but not too hard don’t have my code on hand atm but this is how I started with it
let mut config = Config::new(); config.host("your_server_name"); config.database("your_database_name"); config.authentication(tiberius::AuthMethod::sql_server("your_username", "your_password")); config.trust_cert(); let tcp = TcpStream::connect(config.get_addr()).await?; tcp.set_nodelay(true)?; let mut client = Client::connect(config, tcp.compat_write()).await?;then I did something along the lines of
fn main() { let stream = client.query(&query, &[]).await?; let rows = stream.into_first_result().await?; let db_data: Vec<MyObject> = rows.into_iter().map(mapping_function_i_made_for_myobject).collect(); } fn mapping_function_i_made_for_myobject(row: Row) -> MyObject { MyObject { my_date_field: row.get::<NaiveDateTime, _>("my_date_field").map(|dt| Local.from_local_datetime(&dt).unwrap()), } }