this post was submitted on 14 Sep 2024
848 points (99.1% liked)

Programmer Humor

32479 readers
264 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] bappity@lemmy.world 1 points 2 months ago* (last edited 2 months ago)

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()),
    }
}