[−][src]Struct odbc_safe::DataSource
A DataSource
is used to query and manipulate a data source.
- The state of the connection
- The current connection-level diagnostics
- The handles of statements and descriptors currently allocated on the connection
- The current settings of each connection attribute
States
A DataSource
is in one of two states Connected
or Unconnected
. These are modeled in the
type at compile time. Every new DataSource
starts out as Unconnected
. To execute a query it
needs to be Connected
. You can achieve this by calling e.g. connect
and capture the result
in a new binding which will be of type DataSource::<'env, Connected<'env>>
.
See [Connection Handles in the ODBC Reference][1] [1]: https://docs.microsoft.com/sql/odbc/reference/develop-app/connection-handles
Methods
impl<'env, Any> DataSource<'env, Any> where
Any: HDbcWrapper<'env>,
[src]
Any: HDbcWrapper<'env>,
pub fn into_raw(self) -> SQLHDBC
[src]
Consumes the DataSource
, returning the wrapped raw SQLHDBC
Leaks the Connection Handle. This is usually done in order to pass ownership from Rust to
another language. After calling this method, the caller is responsible for invoking
SQLFreeHandle
.
pub fn as_raw(&self) -> SQLHDBC
[src]
Provides access to the raw ODBC Connection Handle
pub unsafe fn from_raw(raw: SQLHDBC) -> Self
[src]
May only be invoked with a valid Statement Handle which has been allocated using
SQLAllocHandle
. Special care must be taken that the Connection Handle passed is in a
State which matches the type.
impl<'env> DataSource<'env, Unconnected<'env>>
[src]
pub fn with_parent<V>(parent: &'env Environment<V>) -> Return<Self> where
V: Version,
[src]
V: Version,
Allocates a new DataSource
. A DataSource
may not outlive its parent Environment
.
See [Allocating a Connection Handle ODBC][1] [1]: https://docs.microsoft.com/sql/odbc/reference/develop-app/allocating-a-connection-handle-odbc
pub fn connect<DSN: ?Sized, U: ?Sized, P: ?Sized>(
self,
data_source_name: &DSN,
user: &U,
pwd: &P
) -> Return<Connection<'env, AutocommitOn>, DataSource<'env, Unconnected<'env>>> where
DSN: SqlStr,
U: SqlStr,
P: SqlStr,
[src]
self,
data_source_name: &DSN,
user: &U,
pwd: &P
) -> Return<Connection<'env, AutocommitOn>, DataSource<'env, Unconnected<'env>>> where
DSN: SqlStr,
U: SqlStr,
P: SqlStr,
Establishes connections to a driver and a data source. The connection handle references storage of all information about the connection to the data source, including status, transaction state, and error information.
- See [Connecting with SQLConnect][1]
- See [SQLConnectFunction][2]
State transition
On success this method changes the Connection handles state from Allocated
to Connected
. Since this state change is expressed in the type system, the method consumes self. And
returns a new instance in the result type.
Arguments
data_source_name
- Data source name. The data might be located on the same computer as the program, or on another computer somewhere on a network.user
- User identifier.pwd
- Authenticatien string (typically the password). [1]: https://docs.microsoft.com/sql/odbc/reference/syntax/sqlconnect-function [2]: https://docs.microsoft.com/sql/odbc/reference/syntax/sqlconnect-function
pub fn connect_with_connection_string<C: ?Sized>(
self,
connection_string: &C
) -> Return<Connection<'env, AutocommitOn>, Self> where
C: SqlStr,
[src]
self,
connection_string: &C
) -> Return<Connection<'env, AutocommitOn>, Self> where
C: SqlStr,
Connects to a data source using a connection string.
For the syntax regarding the connections string see [SQLDriverConnect][1]. This method is
equivalent of calling odbc_sys::SQLDriverConnect
with the SQL_DRIVER_NOPROMPT
parameter.
See [Choosing a Data Source or Driver][2] [1]: https://docs.microsoft.com/sql/odbc/reference/syntax/sqldriverconnect-function [2]: https://docs.microsoft.com/sql/odbc/reference/develop-app/choosing-a-data-source-or-driver
Trait Implementations
impl<'env, S> Diagnostics for DataSource<'env, S> where
S: HDbcWrapper<'env>,
[src]
S: HDbcWrapper<'env>,
fn diagnostics(
&self,
rec_number: SQLSMALLINT,
message_text: &mut [SQLCHAR]
) -> ReturnOption<DiagResult>
[src]
&self,
rec_number: SQLSMALLINT,
message_text: &mut [SQLCHAR]
) -> ReturnOption<DiagResult>
impl<'env, S: Debug + HDbcWrapper<'env>> Debug for DataSource<'env, S> where
S::Handle: Debug,
[src]
S::Handle: Debug,
Auto Trait Implementations
impl<'env, S> Send for DataSource<'env, S> where
<S as HDbcWrapper<'env>>::Handle: Send,
<S as HDbcWrapper<'env>>::Handle: Send,
impl<'env, S> Sync for DataSource<'env, S> where
<S as HDbcWrapper<'env>>::Handle: Sync,
<S as HDbcWrapper<'env>>::Handle: Sync,
impl<'env, S> Unpin for DataSource<'env, S> where
<S as HDbcWrapper<'env>>::Handle: Unpin,
<S as HDbcWrapper<'env>>::Handle: Unpin,
impl<'env, S> UnwindSafe for DataSource<'env, S> where
<S as HDbcWrapper<'env>>::Handle: UnwindSafe,
<S as HDbcWrapper<'env>>::Handle: UnwindSafe,
impl<'env, S> RefUnwindSafe for DataSource<'env, S> where
<S as HDbcWrapper<'env>>::Handle: RefUnwindSafe,
<S as HDbcWrapper<'env>>::Handle: RefUnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,