Enum odbc_api::Error

source ·
pub enum Error {
    FailedSettingConnectionPooling,
    FailedAllocatingEnvironment,
    NoDiagnostics {
        function: &'static str,
    },
    Diagnostics {
        record: DiagnosticRecord,
        function: &'static str,
    },
    AbortedConnectionStringCompletion,
    UnsupportedOdbcApiVersion(DiagnosticRecord),
    FailedReadingInput(Error),
    InvalidRowArraySize {
        record: DiagnosticRecord,
        size: usize,
    },
    UnableToRepresentNull(DiagnosticRecord),
    OracleOdbcDriverDoesNotSupport64Bit(DiagnosticRecord),
    TooLargeColumnBufferSize {
        buffer_index: u16,
        num_elements: usize,
        element_size: usize,
    },
    TooLargeValueForBuffer,
}
Expand description

Error type used to indicate a low level ODBC call returned with SQL_ERROR.

Variants§

§

FailedSettingConnectionPooling

Setting connection pooling option failed. Exclusively emitted by crate::Environment::set_connection_pooling.

§

FailedAllocatingEnvironment

Allocating the environment itself fails. Further diagnostics are not available, as they would be retrieved using the envirorment handle. Exclusively emitted by crate::Environment::new.

§

NoDiagnostics

Fields

§function: &'static str

ODBC API call which returned error without producing a diagnostic record.

This should never happen, given that ODBC driver manager and ODBC driver do not have any Bugs. Since we may link vs a bunch of these, better to be on the safe side.

§

Diagnostics

Fields

§record: DiagnosticRecord

Diagnostic record returned by the ODBC driver manager

§function: &'static str

ODBC API call which produced the diagnostic record

SQL Error had been returned by a low level ODBC function call. A Diagnostic record is obtained and associated with this error.

§

AbortedConnectionStringCompletion

A user dialog to complete the connection string has been aborted.

§

UnsupportedOdbcApiVersion(DiagnosticRecord)

An error returned if we fail to set the ODBC version

§

FailedReadingInput(Error)

An error emitted by an std::io::ReadBuf implementation used as an input argument.

§

InvalidRowArraySize

Fields

§size: usize

Driver returned “invalid attribute” then setting the row array size. Most likely the array size is to large. Instead of returing “option value changed (SQLSTATE 01S02)” like suggested in https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlsetstmtattr-function the driver returned an error instead.

§

UnableToRepresentNull(DiagnosticRecord)

§

OracleOdbcDriverDoesNotSupport64Bit(DiagnosticRecord)

There are plenty of issues in the net about Oracle ODBC driver not supporting 64Bit. This message, should make it easier identify what is going on, since the message emmitted by, Oracles ODBC driver is a bit cryptic: [Oracle][ODBC]Invalid SQL data type <-25>.

§

TooLargeColumnBufferSize

Fields

§buffer_index: u16

Zero based column buffer index. Note that this is different from the 1 based column index.

§num_elements: usize
§element_size: usize
§

TooLargeValueForBuffer

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<E> Provider for Ewhere E: Error + ?Sized,

source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to provide by using demand. Read more
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.