Skip to main content

sqlx_sqlserver/
lib.rs

1//! Independent Microsoft SQL Server driver crate for SQLx.
2//!
3//! This crate is intentionally outside the SQLx workspace and does not use
4//! local `path` dependencies. The current port includes tested connection
5//! option parsing, PRELOGIN/LOGIN7 handshake support, TDS-wrapped TLS handshake
6//! support for encrypted SQL Server connections, SQL batch execution,
7//! transaction batches, and RPC execution for stable scalar bind parameters.
8//!
9//! # Testing
10//!
11//! Fast tests do not require SQL Server:
12//!
13//! ```text
14//! cargo test
15//! ```
16//!
17//! Integration tests require `MSSQL_DATABASE_URL` and skip cleanly when it is
18//! absent:
19//!
20//! ```text
21//! MSSQL_DATABASE_URL='mssql://sa:Password123!@localhost:1433/master?encrypt=mandatory&trust_server_certificate=true' \
22//! cargo test --features integration-tests --test mssql_smoke
23//! ```
24
25#![deny(missing_docs)]
26#![deny(rustdoc::broken_intra_doc_links)]
27#![warn(future_incompatible, rust_2018_idioms)]
28
29pub mod any;
30mod arguments;
31mod column;
32mod connection;
33mod database;
34#[cfg(feature = "migrate")]
35mod migrate;
36/// Connection option parsing and configuration for SQL Server.
37pub mod options;
38pub mod protocol;
39mod query_result;
40mod row;
41mod ssrp;
42mod statement;
43mod tls;
44mod transaction;
45mod type_info;
46mod value;
47
48pub use arguments::MssqlArguments;
49pub use column::MssqlColumn;
50pub use connection::MssqlConnection;
51pub use database::Mssql;
52pub use options::{Encrypt, MssqlConnectOptions, MssqlInvalidOption};
53pub use query_result::MssqlQueryResult;
54pub use row::MssqlRow;
55pub use statement::MssqlStatement;
56pub use transaction::MssqlTransactionManager;
57pub use type_info::{MssqlType, MssqlTypeInfo};
58pub use value::{MssqlValue, MssqlValueRef};
59
60/// An alias for [`Pool`][sqlx_core::pool::Pool], specialized for SQL Server.
61pub type MssqlPool = sqlx_core::pool::Pool<Mssql>;
62
63/// An alias for [`PoolOptions`][sqlx_core::pool::PoolOptions], specialized for SQL Server.
64pub type MssqlPoolOptions = sqlx_core::pool::PoolOptions<Mssql>;
65
66/// An alias for [`Transaction`][sqlx_core::transaction::Transaction], specialized for SQL Server.
67pub type MssqlTransaction<'c> = sqlx_core::transaction::Transaction<'c, Mssql>;
68
69/// An alias for [`Executor<'_, Database = Mssql>`][sqlx_core::executor::Executor].
70pub trait MssqlExecutor<'c>: sqlx_core::executor::Executor<'c, Database = Mssql> {}
71impl<'c, T> MssqlExecutor<'c> for T where T: sqlx_core::executor::Executor<'c, Database = Mssql> {}
72
73sqlx_core::impl_into_arguments_for_arguments!(MssqlArguments);
74sqlx_core::impl_encode_for_option!(Mssql);
75sqlx_core::impl_acquire!(Mssql, MssqlConnection);