pub struct OdbcConnection { /* private fields */ }Expand description
Blocking ODBC connection wrapper.
This is the minimal smoke-test surface. The SQLx async Connection and Executor traits will
be implemented as the port progresses.
Implementations§
Source§impl OdbcConnection
impl OdbcConnection
Sourcepub fn connect_blocking(options: &OdbcConnectOptions) -> Result<Self>
pub fn connect_blocking(options: &OdbcConnectOptions) -> Result<Self>
Opens a blocking ODBC connection with the provided options.
Sourcepub fn ping_blocking(&mut self) -> Result<()>
pub fn ping_blocking(&mut self) -> Result<()>
Executes a minimal connectivity query.
Sourcepub fn prepare_blocking(&mut self, sql: SqlStr) -> Result<OdbcStatement, Error>
pub fn prepare_blocking(&mut self, sql: SqlStr) -> Result<OdbcStatement, Error>
Prepares a statement and returns the metadata reported by the ODBC driver.
Trait Implementations§
Source§impl AnyConnectionBackend for OdbcConnection
impl AnyConnectionBackend for OdbcConnection
Source§fn close(self: Box<Self>) -> BoxFuture<'static, Result<()>>
fn close(self: Box<Self>) -> BoxFuture<'static, Result<()>>
Explicitly close this database connection. Read more
Source§fn ping(&mut self) -> BoxFuture<'_, Result<()>>
fn ping(&mut self) -> BoxFuture<'_, Result<()>>
Checks if a connection to the database is still valid.
Source§fn begin(&mut self, statement: Option<SqlStr>) -> BoxFuture<'_, Result<()>>
fn begin(&mut self, statement: Option<SqlStr>) -> BoxFuture<'_, Result<()>>
Begin a new transaction or establish a savepoint within the active transaction. Read more
fn commit(&mut self) -> BoxFuture<'_, Result<()>>
fn rollback(&mut self) -> BoxFuture<'_, Result<()>>
fn start_rollback(&mut self)
Source§fn get_transaction_depth(&self) -> usize
fn get_transaction_depth(&self) -> usize
Returns the current transaction depth. Read more
Source§fn shrink_buffers(&mut self)
fn shrink_buffers(&mut self)
Forward to
Connection::shrink_buffers().fn fetch_many( &mut self, query: SqlStr, _persistent: bool, arguments: Option<AnyArguments>, ) -> BoxStream<'_, Result<Either<AnyQueryResult, AnyRow>>>
fn fetch_optional( &mut self, query: SqlStr, _persistent: bool, arguments: Option<AnyArguments>, ) -> BoxFuture<'_, Result<Option<AnyRow>>>
fn prepare_with<'c, 'q: 'c>( &'c mut self, sql: SqlStr, _parameters: &[AnyTypeInfo], ) -> BoxFuture<'c, Result<AnyStatement>>
Source§fn is_in_transaction(&self) -> bool
fn is_in_transaction(&self) -> bool
Checks if the connection is currently in a transaction. Read more
Source§fn cached_statements_size(&self) -> usize
fn cached_statements_size(&self) -> usize
The number of statements currently cached in the connection.
Source§impl Connection for OdbcConnection
impl Connection for OdbcConnection
type Database = Odbc
type Options = OdbcConnectOptions
Source§async fn close(self) -> Result<(), Error>
async fn close(self) -> Result<(), Error>
Explicitly close this database connection. Read more
Source§async fn ping(&mut self) -> Result<(), Error>
async fn ping(&mut self) -> Result<(), Error>
Checks if a connection to the database is still valid.
Source§fn begin(
&mut self,
) -> impl Future<Output = Result<Transaction<'_, Self::Database>, Error>> + Send + '_
fn begin( &mut self, ) -> impl Future<Output = Result<Transaction<'_, Self::Database>, Error>> + Send + '_
Begin a new transaction or establish a savepoint within the active transaction. Read more
Source§fn shrink_buffers(&mut self)
fn shrink_buffers(&mut self)
Restore any buffers in the connection to their default capacity, if possible. Read more
Source§fn begin_with(
&mut self,
statement: impl SqlSafeStr,
) -> impl Future<Output = Result<Transaction<'_, Self::Database>, Error>> + Sendwhere
Self: Sized,
fn begin_with(
&mut self,
statement: impl SqlSafeStr,
) -> impl Future<Output = Result<Transaction<'_, Self::Database>, Error>> + Sendwhere
Self: Sized,
Begin a new transaction with a custom statement. Read more
Source§fn is_in_transaction(&self) -> bool
fn is_in_transaction(&self) -> bool
Returns
true if the connection is currently in a transaction. Read moreSource§fn transaction<'a, F, R, E>(
&'a mut self,
callback: F,
) -> impl Future<Output = Result<R, E>> + Send + 'a
fn transaction<'a, F, R, E>( &'a mut self, callback: F, ) -> impl Future<Output = Result<R, E>> + Send + 'a
Execute the function inside a transaction. Read more
Source§impl Debug for OdbcConnection
impl Debug for OdbcConnection
Source§impl<'c> Executor<'c> for &'c mut OdbcConnection
impl<'c> Executor<'c> for &'c mut OdbcConnection
type Database = Odbc
Source§fn fetch_many<'e, 'q, E>(
self,
query: E,
) -> BoxStream<'e, Result<Either<OdbcQueryResult, OdbcRow>, Error>>
fn fetch_many<'e, 'q, E>( self, query: E, ) -> BoxStream<'e, Result<Either<OdbcQueryResult, OdbcRow>, Error>>
Execute multiple queries and return the generated results as a stream
from each query, in a stream.
Source§fn fetch_optional<'e, 'q, E>(
self,
query: E,
) -> BoxFuture<'e, Result<Option<OdbcRow>, Error>>
fn fetch_optional<'e, 'q, E>( self, query: E, ) -> BoxFuture<'e, Result<Option<OdbcRow>, Error>>
Execute the query and returns at most one row.
Source§fn prepare_with<'e>(
self,
sql: SqlStr,
_parameters: &[OdbcTypeInfo],
) -> BoxFuture<'e, Result<OdbcStatement, Error>>where
'c: 'e,
fn prepare_with<'e>(
self,
sql: SqlStr,
_parameters: &[OdbcTypeInfo],
) -> BoxFuture<'e, Result<OdbcStatement, Error>>where
'c: 'e,
Prepare the SQL query, with parameter type information, to inspect the
type information about its parameters and results. Read more
Source§fn execute<'e, 'q, E>(
self,
query: E,
) -> Pin<Box<dyn Future<Output = Result<<Self::Database as Database>::QueryResult, Error>> + Send + 'e>>
fn execute<'e, 'q, E>( self, query: E, ) -> Pin<Box<dyn Future<Output = Result<<Self::Database as Database>::QueryResult, Error>> + Send + 'e>>
Execute the query and return the total number of rows affected.
Source§fn execute_many<'e, 'q, E>(
self,
query: E,
) -> Pin<Box<dyn Stream<Item = Result<<Self::Database as Database>::QueryResult, Error>> + Send + 'e>>
fn execute_many<'e, 'q, E>( self, query: E, ) -> Pin<Box<dyn Stream<Item = Result<<Self::Database as Database>::QueryResult, Error>> + Send + 'e>>
Execute multiple queries and return the rows affected from each query, in a stream.
Source§fn fetch<'e, 'q, E>(
self,
query: E,
) -> Pin<Box<dyn Stream<Item = Result<<Self::Database as Database>::Row, Error>> + Send + 'e>>
fn fetch<'e, 'q, E>( self, query: E, ) -> Pin<Box<dyn Stream<Item = Result<<Self::Database as Database>::Row, Error>> + Send + 'e>>
Execute the query and return the generated results as a stream.
Source§fn fetch_all<'e, 'q, E>(
self,
query: E,
) -> Pin<Box<dyn Future<Output = Result<Vec<<Self::Database as Database>::Row>, Error>> + Send + 'e>>
fn fetch_all<'e, 'q, E>( self, query: E, ) -> Pin<Box<dyn Future<Output = Result<Vec<<Self::Database as Database>::Row>, Error>> + Send + 'e>>
Execute the query and return all the generated results, collected into a
Vec.Auto Trait Implementations§
impl Freeze for OdbcConnection
impl RefUnwindSafe for OdbcConnection
impl Send for OdbcConnection
impl !Sync for OdbcConnection
impl Unpin for OdbcConnection
impl UnsafeUnpin for OdbcConnection
impl UnwindSafe for OdbcConnection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more