- Notifications
You must be signed in to change notification settings - Fork31
Koka/odbc-rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Library for writingODBC applications in Rust.
If you're looking for raw ODBC FFI bindings checkodbc-safe andodbc-sys crate.
Docs are also availablehere
externcrate odbc;// Use this crate and set environmet variable RUST_LOG=odbc to see ODBC warningsexterncrate env_logger;use odbc::*;use std::io;use odbc_safe::AutocommitOn;fnmain(){ env_logger::init();matchconnect(){Ok(()) =>println!("Success"),Err(diag) =>println!("Error: {}", diag),}}fnconnect() -> std::result::Result<(),DiagnosticRecord>{let env =create_environment_v3().map_err(|e| e.unwrap())?;letmut buffer =String::new();println!("Please enter connection string: "); io::stdin().read_line(&mut buffer).unwrap();let conn = env.connect_with_connection_string(&buffer)?;execute_statement(&conn)}fnexecute_statement<'env>(conn:&Connection<'env,AutocommitOn>) ->Result<()>{let stmt =Statement::with_parent(conn)?;letmut sql_text =String::new();println!("Please enter SQL statement string: "); io::stdin().read_line(&mut sql_text).unwrap();match stmt.exec_direct(&sql_text)?{Data(mut stmt) =>{let cols = stmt.num_result_cols()?;whileletSome(mut cursor) = stmt.fetch()?{for iin1..(cols +1){match cursor.get_data::<&str>(iasu16)?{Some(val) =>print!(" {}", val),None =>print!(" NULL"),}}println!("");}}NoData(_) =>println!("Query executed, no data returned"),}Ok(())}
About
Rust ODBC FFI binding
Topics
Resources
License
Code of conduct
Stars
Watchers
Forks
Packages0
No packages published