Skip to main content

sqlx_odbc/
transaction.rs

1use crate::{Odbc, OdbcConnection};
2
3/// Transaction manager placeholder for ODBC.
4pub struct OdbcTransactionManager;
5
6impl sqlx_core::transaction::TransactionManager for OdbcTransactionManager {
7    type Database = Odbc;
8
9    async fn begin(
10        conn: &mut OdbcConnection,
11        _statement: Option<sqlx_core::sql_str::SqlStr>,
12    ) -> Result<(), sqlx_core::Error> {
13        conn.begin_blocking()
14    }
15
16    async fn commit(conn: &mut OdbcConnection) -> Result<(), sqlx_core::Error> {
17        conn.commit_blocking()
18    }
19
20    async fn rollback(conn: &mut OdbcConnection) -> Result<(), sqlx_core::Error> {
21        conn.rollback_blocking()
22    }
23
24    fn start_rollback(conn: &mut OdbcConnection) {
25        conn.start_rollback();
26    }
27
28    fn get_transaction_depth(conn: &OdbcConnection) -> usize {
29        conn.transaction_depth()
30    }
31}