cdbc

Coroutine Database driver Connectivity.based on may

Database Support:

Supported functions

use example:

cargo.toml ```toml

must dep

cdbc = {version = "*"}

optional dep

cdbc-mysql = {version = ""} cdbc-pg = {version = ""} cdbc-sqlite = {version = "*"} * row_scan macro rust pub struct BizActivity { pub id: Option, pub name: Option, pub deleteflag: Option, } let pool = MySqlPool::connect("mysql://root:123456@localhost:3306/test")?; let mut conn = pool.acquire()?; //fetch one data let row = conn.fetchone("select * from bizactivity limit 1")?; let data: BizActivity = cdbc::rowscanstruct!(row,BizActivity{id: None,name: None,deleteflag: None})?; //fetch data array let rows = conn.fetchall("select * from bizactivity")?; let datas:Vec = cdbc::rowscanstructs!(rows,BizActivity{id: None,name: None,delete_flag: None})?; ```

fn main() -> cdbc::Result<()> { let pool = MySqlPool::connect("mysql://root:123456@localhost:3306/test")?; let mut conn = pool.acquire()?; loop { let mut data: ChanStream = conn.fetch("select * from bizactivity;"); data.tryforeach(|item| { let mut m = BTreeMap::new(); for column in item.columns() { let v = item.trygetraw(column.name())?; let r: Option = Decode::<', MySql>::decode(v)?; m.insert(column.name().to_string(), r); } println!("{:?}", m); drop(m); Ok(()) })?; } }

```