9 个版本 (重大变更)

0.8.0 2023年11月27日
0.7.0 2023年10月9日
0.6.0 2023年7月12日
0.5.0 2023年3月31日
0.1.0 2022年5月23日

#8 in #odbc

每月下载量 32 次

MIT/Apache

13KB
189

AxumODBC

提供 ODBC-API 层的库。

crates.io docs.rs Minimum Rust Version

许可证

本项目采用 Apache 许可证 2.0 版、zlib 许可证或 MIT 许可证,您可任选其一。

帮助

如果您需要此库的帮助或有建议,请访问我们的 Discord 群组

安装

Axum ODBC 使用 tokio 运行时。

# Cargo.toml
[dependencies]
axum_odbc = "0.7.0"

Cargo 功能标志

iodbc: 设置 odbc-api 使用 iodbc 连接管理器。

示例

use axum_odbc::{ODBCConnectionManager, blocking};
use axum::{
    Router,
    routing::get,
};
use std::time::Duration;

#[tokio::main]
async fn main() {

    let manager = ODBCConnectionManager::new("Driver={ODBC Driver 17 for SQL Server};Server=localhost;UID=SA;PWD=My@Test@Password1;", 5);

    // build our application with some routes
    let app = Router::with_state(manager)
        .route("/drop", get(drop_table));

    // run it
    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    tracing::debug!("listening on {}", addr);
    axum::Server::bind(&addr)
        .serve(app.into_make_service())
        .await
        .unwrap();
}

async fn drop_table(manager: ODBCConnectionManager) -> String {
    let mut connection = manager.aquire().await.unwrap();
    let sleep = || tokio::time::sleep(Duration::from_millis(50));

    let _ = connection.execute_polling("DROP TABLE IF EXISTS TEST", (), sleep).await.unwrap();

    "compeleted".to_string()
}

依赖项

~6–22MB
~314K SLoC