79个版本
0.28.6 | 2024年6月12日 |
---|---|
0.28.5 | 2024年2月9日 |
0.28.3 | 2024年1月19日 |
0.27.0 | 2023年12月31日 |
0.0.26 | 2016年12月7日 |
#810 在 数据库接口
每月66 次下载
800KB
16K SLoC
hdbconnect
同步纯Rust SQL驱动程序,用于SAP HANA(TM)。
如果您需要SAP HANA的异步驱动程序,请查看hdbconnect_async
。
用法
将 hdbconnect
添加到项目 Cargo.toml
文件中的依赖项部分
[dependencies]
hdbconnect = "0.28"
假设您有
- 位于主机
hxehost
上的HANA,可通过端口39013
访问, - 并且您可以使用用户
HORST
和密码SeCrEt
登录,
那么一个简单的测试,其中设置一些表,插入数据并读取它们,可能看起来像这样
use hdbconnect::{Connection, HdbResult};
pub fn main() -> HdbResult<()> {
let mut connection = Connection::new("hdbsql://HORST:SeCrEt@hxehost:39013")?;
// Cleanup if necessary, and set up a test table
connection.multiple_statements_ignore_err(vec![
"drop table FOO_SQUARE"
]);
connection.multiple_statements(vec![
"create table FOO_SQUARE ( f1 INT primary key, f2 BIGINT)",
])?;
// Insert some test data
let mut insert_stmt = connection.prepare(
"insert into FOO_SQUARE (f1, f2) values(?,?)"
)?;
for i in 0..100 {
insert_stmt.add_batch(&(i, i * i))?;
}
insert_stmt.execute_batch()?;
// Read the table data directly into a rust data structure
let stmt = "select * from FOO_SQUARE order by f1 asc";
let n_square: Vec<(i32, u64)> =
connection.query(stmt)?.try_into()?;
// Verify ...
for (idx, (n, square)) in n_square.into_iter().enumerate() {
assert_eq!(idx as i32, n);
assert_eq!((idx * idx) as u64, square);
}
Ok(())
}
文档
在文档中包含更多代码示例,尤其是在 code_examples
模块的描述中。
TLS
请参阅HANA in SCP 以获取从SAP云平台上的HANA获取必要服务器证书的说明。
功能
r2d2_pool
添加了r2d2
数据库池的实现。
dist_tx
基于dist_tx
添加了对分布式事务的支持。
版本
请参阅变更日志。
依赖项
~14–24MB
~465K SLoC