sqlx_core_oldapi/odbc/
mod.rs

1//! ODBC database driver (via `odbc-api`).
2//!
3//! ## Connection Strings
4//!
5//! When using the `Any` connection type, SQLx accepts standard ODBC connection strings:
6//!
7//! ```text
8//! // DSN-based connection
9//! DSN=MyDataSource;UID=myuser;PWD=mypassword
10//!
11//! // Driver-based connection
12//! Driver={ODBC Driver 17 for SQL Server};Server=localhost;Database=test
13//!
14//! // File DSN
15//! FILEDSN=/path/to/myfile.dsn
16//! ```
17//!
18//! The `odbc:` URL scheme prefix is optional but still supported for backward compatibility:
19//!
20//! ```text
21//! odbc:DSN=MyDataSource
22//! ```
23
24use crate::executor::Executor;
25
26mod arguments;
27mod column;
28mod connection;
29mod database;
30mod error;
31mod options;
32mod query_result;
33mod row;
34pub mod statement;
35mod transaction;
36mod type_info;
37pub mod types;
38mod value;
39
40pub use arguments::{OdbcArgumentValue, OdbcArguments};
41pub use column::OdbcColumn;
42pub use connection::OdbcConnection;
43pub use database::Odbc;
44pub use options::OdbcConnectOptions;
45pub use query_result::OdbcQueryResult;
46pub use row::OdbcRow;
47pub use statement::{OdbcStatement, OdbcStatementMetadata};
48pub use transaction::OdbcTransactionManager;
49pub use type_info::{DataTypeExt, OdbcTypeInfo};
50pub use value::{OdbcValue, OdbcValueRef};
51
52/// An alias for [`Pool`][crate::pool::Pool], specialized for ODBC.
53pub type OdbcPool = crate::pool::Pool<Odbc>;
54
55/// An alias for [`PoolOptions`][crate::pool::PoolOptions], specialized for ODBC.
56pub type OdbcPoolOptions = crate::pool::PoolOptions<Odbc>;
57
58/// An alias for [`Executor<'_, Database = Odbc>`][Executor].
59pub trait OdbcExecutor<'c>: Executor<'c, Database = Odbc> {}
60impl<'c, T: Executor<'c, Database = Odbc>> OdbcExecutor<'c> for T {}
61
62// NOTE: required due to the lack of lazy normalization
63impl_into_arguments_for_arguments!(crate::odbc::OdbcArguments);
64impl_executor_for_pool_connection!(Odbc, OdbcConnection, OdbcRow);
65impl_executor_for_transaction!(Odbc, OdbcRow);
66impl_column_index_for_row!(OdbcRow);
67impl_column_index_for_statement!(OdbcStatement);
68impl_acquire!(Odbc, OdbcConnection);
69impl_into_maybe_pool!(Odbc, OdbcConnection);
70
71// custom Option<..> handling implemented in `arguments.rs`