Crates.io | tiberius-mssql-broker |
lib.rs | tiberius-mssql-broker |
version | 0.1.3 |
source | src |
created_at | 2023-07-25 00:55:30.237172 |
updated_at | 2023-07-25 00:57:10.295627 |
description | Real time change listener for MSSQL |
homepage | |
repository | https://github.com/mjm918/tiberius-mssql-broker |
max_upload_size | |
id | 925076 |
size | 64,564 |
Broker for MSSQL. Re-implementation of C# SQLDependencyEx.
Thanks to deadpool-tiberius repository.
broker example
let mssql = MssqlConnection::establish(&SqlConfig{
host: ".".to_string(),
instance: Some("SQLEXPRESS".to_string()),
port: 1433,
username: "sa".to_string(),
password: "julfikar123@".to_string(),
database: "AED_MOBILE".to_string(),
trust_cert: true,
allow_encrypt: true,
max_pool: 1,
sql_browser: false,
}).await;
match mssql {
Ok(conn) => {
let (sx, rx) = kanal::unbounded::<Vec<ListenEvent>>();
println!("started listening...");
tokio::spawn(async move {
while let Ok(evs) = rx.recv() {
println!("{} {:?}",evs.len(),evs);
}
});
let broker = conn.listen(1,format!("IV"), sx).await;
match broker {
Ok(_) => { }
Err(err) => {
println!("{:?}",err);
}
}
}
Err(err) => {
println!("{:?}",err);
}
}
query example
let config = SqlConfig {
host: ".".to_string(),
instance: Some("SQLEXPRESS".to_string()),
port: 1433,
username: "sa".to_string(),
password: "julfikar123@".to_string(),
database: "AED_MOBILE".to_string(),
trust_cert: true,
allow_encrypt: true,
max_pool: 1,
sql_browser: false,
};
let mssql = MssqlConnection::establish(&config).await;
let mut mssql = mssql.unwrap();
let res = mssql.select("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';", vec![]).await;
let res: Vec<HashMap<String,Value>> = res.unwrap();