pub enum Error {
Show 13 variants
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,
},
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
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
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
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>
.