pub enum Error {
FailedSettingConnectionPooling,
FailedAllocatingEnvironment,
NoDiagnostics {
function: &'static str,
},
Diagnostics {
record: Record,
function: &'static str,
},
AbortedConnectionStringCompletion,
UnsupportedOdbcApiVersion(Record),
FailedReadingInput(Error),
InvalidRowArraySize {
record: Record,
size: usize,
},
UnableToRepresentNull(Record),
OracleOdbcDriverDoesNotSupport64Bit(Record),
TooLargeColumnBufferSize {
buffer_index: u16,
num_elements: usize,
element_size: usize,
},
TooLargeValueForBuffer {
indicator: Option<usize>,
buffer_index: usize,
},
}
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
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.
Fields
Diagnostics
SQL Error had been returned by a low level ODBC function call. A Diagnostic record is obtained and associated with this error.
Fields
AbortedConnectionStringCompletion
A user dialog to complete the connection string has been aborted.
UnsupportedOdbcApiVersion(Record)
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
Driver returned “invalid attribute” then setting the row array size. Most likely the array size is too large. Instead of returing “option value changed (SQLSTATE 01S02)” as suggested in https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlsetstmtattr-function the driver returned an error instead.
UnableToRepresentNull(Record)
OracleOdbcDriverDoesNotSupport64Bit(Record)
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>
.