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,
    },
    OracleOdbcDriverDoesNotSupport64Bit(DiagnosticRecord),
    TooLargeColumnBufferSize {
        buffer_index: u16,
        num_elements: usize,
        element_size: usize,
    },
    TooManyDiagnostics,
    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.

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

TooManyDiagnostics

TooLargeValueForBuffer

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

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

🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

👎 Deprecated since 1.42.0:

use the Display impl or to_string()

👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.