Skip to main content

sqlx_sqlserver/
database.rs

1use sqlx_core::database::Database;
2
3use crate::{
4    MssqlArguments, MssqlColumn, MssqlConnection, MssqlQueryResult, MssqlRow, MssqlStatement,
5    MssqlTransactionManager, MssqlTypeInfo, MssqlValue, MssqlValueRef,
6};
7
8/// SQL Server database driver marker.
9#[derive(Debug)]
10pub struct Mssql;
11
12impl Database for Mssql {
13    type Connection = MssqlConnection;
14    type TransactionManager = MssqlTransactionManager;
15    type Row = MssqlRow;
16    type QueryResult = MssqlQueryResult;
17    type Column = MssqlColumn;
18    type TypeInfo = MssqlTypeInfo;
19    type Value = MssqlValue;
20    type ValueRef<'r> = MssqlValueRef<'r>;
21    type Arguments = MssqlArguments;
22    type ArgumentBuffer = Vec<u8>;
23    type Statement = MssqlStatement;
24
25    const NAME: &'static str = "Microsoft SQL Server";
26    const URL_SCHEMES: &'static [&'static str] = &["mssql", "sqlserver"];
27}
28
29#[cfg(test)]
30mod tests {
31    use super::*;
32
33    #[test]
34    fn exposes_sqlx_database_metadata() {
35        assert_eq!("Microsoft SQL Server", <Mssql as Database>::NAME);
36        assert_eq!(&["mssql", "sqlserver"], <Mssql as Database>::URL_SCHEMES);
37    }
38}