Skip to main content

Crate sqlx_sqlserver

Crate sqlx_sqlserver 

Source
Expand description

Microsoft SQL Server driver for SQLx.

sqlx-sqlserver is an independent split driver crate. Use it directly with sqlx-core native APIs, or install its Any driver when an application wants to open SQL Server URLs through AnyConnection.

§Native connection

use sqlx_core::connection::{ConnectOptions, Connection};
use sqlx_core::row::Row;
use sqlx_sqlserver::MssqlConnectOptions;

let mut conn = "mssql://sa:Password123!@localhost:1433/master?encrypt=mandatory&trust_server_certificate=true"
    .parse::<MssqlConnectOptions>()?
    .connect()
    .await?;

let row = sqlx_core::query::query("SELECT 1")
    .fetch_one(&mut conn)
    .await?;

let value: i32 = row.try_get(0)?;
assert_eq!(value, 1);

conn.close().await?;

§AnyConnection

Install this driver before connecting through SQLx Any APIs:

use sqlx_core::connection::Connection;

sqlx_core::any::driver::install_drivers(&[sqlx_sqlserver::any::DRIVER])?;

let mut conn = sqlx_core::any::AnyConnection::connect(
    "mssql://sa:Password123!@localhost:1433/master?encrypt=mandatory&trust_server_certificate=true",
)
.await?;

conn.close().await?;

To combine split drivers, install all of them once at application startup:

fn install() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
sqlx_core::any::driver::install_drivers(&[
    sqlx_sqlserver::any::DRIVER,
    sqlx_odbc::any::DRIVER,
])?;
Ok(())
}

The examples use trust_server_certificate=true for local development with SQL Server’s self-signed container certificate. Production deployments should prefer a trusted certificate and, when needed, hostname_in_certificate or ssl_root_cert in MssqlConnectOptions.

Re-exports§

pub use options::Encrypt;
pub use options::MssqlConnectOptions;
pub use options::MssqlInvalidOption;

Modules§

any
Runtime Any driver registration for SQL Server.
options
Connection option parsing and configuration for SQL Server.
protocol
Small protocol helpers covered by fast unit tests.

Structs§

Mssql
SQL Server database driver marker.
MssqlArguments
SQL Server argument buffer.
MssqlColumn
SQL Server column metadata skeleton.
MssqlConnection
SQL Server connection.
MssqlDatabaseError
An error reported by SQL Server.
MssqlQueryResult
Summary of a SQL Server query execution.
MssqlRow
SQL Server row skeleton.
MssqlStatement
SQL Server prepared statement metadata skeleton.
MssqlTransactionManager
SQL Server transaction manager.
MssqlTypeInfo
SQL Server type information.
MssqlValue
Owned SQL Server value skeleton.
MssqlValueRef
Borrowed SQL Server value skeleton.

Enums§

MssqlType
SQL Server scalar type families known by the skeleton driver.

Traits§

MssqlExecutor
An alias for Executor<'_, Database = Mssql>.

Type Aliases§

MssqlPool
An alias for Pool, specialized for SQL Server.
MssqlPoolOptions
An alias for PoolOptions, specialized for SQL Server.
MssqlTransaction
An alias for Transaction, specialized for SQL Server.