pub use self::{
attributes::*, bulk_operation::*, c_data_type::*, fetch_orientation::*, info_type::*,
nullable::*, param_type::*, sqlreturn::*, functions::*, interval::*
};
use std::os::raw::{c_int, c_void};
mod attributes;
mod bulk_operation;
mod c_data_type;
mod fetch_orientation;
mod functions;
mod info_type;
mod nullable;
mod param_type;
mod sqlreturn;
mod interval;
pub enum Obj {}
pub enum Env {}
pub enum Dbc {}
pub enum Stmt {}
pub enum Desc {}
pub type Handle = *mut Obj;
pub type HEnv = *mut Env;
pub type HDesc = *mut Desc;
pub type HDbc = *mut Dbc;
pub type HStmt = *mut Stmt;
pub type SmallInt = i16;
pub type USmallInt = u16;
pub type Integer = i32;
pub type UInteger = u32;
pub type Pointer = *mut c_void;
pub type Char = u8;
pub type WChar = u16;
#[cfg(target_pointer_width = "64")]
pub type Len = i64;
#[cfg(target_pointer_width = "32")]
pub type Len = Integer;
#[cfg(target_pointer_width = "64")]
pub type ULen = u64;
#[cfg(target_pointer_width = "32")]
pub type ULen = UInteger;
pub type HWnd = Pointer;
pub type RetCode = i16;
pub const NTS: SmallInt = -3;
pub const NTSL: Integer = -3;
pub const MAX_MESSAGE_LENGTH: SmallInt = 512;
pub const SQLSTATE_SIZE: usize = 5;
pub const SQLSTATE_SIZEW: usize = 10;
pub const NULL_DATA: Len = -1;
pub const NO_TOTAL: Len = -4;
pub const SS_LENGTH_UNLIMITED: ULen = 0;
#[repr(u16)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum FreeStmtOption {
Close = 0,
Unbind = 2,
ResetParams = 3,
}
#[repr(i16)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum SqlDataType {
UnknownType = 0,
Char = 1,
Numeric = 2,
Decimal = 3,
Integer = 4,
Smallint = 5,
Float = 6,
Real = 7,
Double = 8,
Datetime = 9,
Varchar = 12,
#[cfg(feature = "odbc_version_4")]
Udt = 17,
#[cfg(feature = "odbc_version_4")]
Row = 19,
#[cfg(feature = "odbc_version_4")]
Array = 50,
#[cfg(feature = "odbc_version_4")]
Multiset = 55,
Date = 91,
Time = 92,
Timestamp = 93,
#[cfg(feature = "odbc_version_4")]
TimeWithTimezone = 94,
#[cfg(feature = "odbc_version_4")]
TimestampWithTimezone = 95,
ExtTimeOrInterval = 10,
ExtTimestamp = 11,
ExtLongVarchar = -1,
ExtBinary = -2,
ExtVarBinary = -3,
ExtLongVarBinary = -4,
ExtBigInt = -5,
ExtTinyInt = -6,
ExtBit = -7,
ExtWChar = -8,
ExtWVarChar = -9,
ExtWLongVarChar = -10,
ExtGuid = -11,
SsVariant = -150,
SsUdt = -151,
SsXml = -152,
SsTable = -153,
SsTime2 = -154,
SsTimestampOffset = -155,
}
#[repr(i16)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum HandleType {
Env = 1,
Dbc = 2,
Stmt = 3,
Desc = 4,
}
#[repr(u16)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum DriverConnectOption {
NoPrompt = 0,
Complete = 1,
Prompt = 2,
CompleteRequired = 3,
}
#[repr(i32)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum SqlAttributeStringLength {
Pointer = -4,
UInteger = -5,
Integer = -6,
USmallInt = -7,
SmallInt = -8,
}
pub use self::SqlAttributeStringLength::*;
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct YearMonth {
pub year: UInteger,
pub month: UInteger,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct DaySecond {
pub day: UInteger,
pub hour: UInteger,
pub minute: UInteger,
pub second: UInteger,
pub fraction: UInteger,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union IntervalUnion {
pub year_month: YearMonth,
pub day_second: DaySecond,
}
#[repr(C)]
#[derive(Clone, Copy)]
pub struct IntervalStruct {
pub interval_type: c_int,
pub interval_sign: SmallInt,
pub interval_value: IntervalUnion,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct Date {
pub year: SmallInt,
pub month: USmallInt,
pub day: USmallInt,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct Time {
pub hour: USmallInt,
pub minute: USmallInt,
pub second: USmallInt,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct Timestamp {
pub year: SmallInt,
pub month: USmallInt,
pub day: USmallInt,
pub hour: USmallInt,
pub minute: USmallInt,
pub second: USmallInt,
pub fraction: UInteger,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct Guid {
pub d1: u32,
pub d2: u16,
pub d3: u16,
pub d4: [u8; 8],
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct SsTime2 {
pub hour: USmallInt,
pub minute: USmallInt,
pub second: USmallInt,
pub fraction: UInteger,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct SsTimestampOffset {
pub year: SmallInt,
pub month: USmallInt,
pub day: USmallInt,
pub hour: USmallInt,
pub minute: USmallInt,
pub second: USmallInt,
pub fraction: UInteger,
pub timezone_hour: SmallInt,
pub timezone_minute: SmallInt,
}
#[repr(i32)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum StatementAttribute {
AsyncEnable = 4,
ParamBindType = 18,
ParamsetSize = 22,
RowBindType = 5,
RowArraySize = 27,
RowsFetchedPtr = 26,
AsyncStmtEvent = 29,
}
#[repr(i32)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ConnectionAttribute {
AsyncEnable = 4,
AccessMode = 101,
AutoCommit = 102,
LoginTimeout = 103,
Trace = 104,
TraceFile = 105,
TranslateLib = 106,
TranslateOption = 107,
TxnIsolation = 108,
CurrentCatalog = 109,
OdbcCursors = 110,
QuietMode = 111,
PacketSize = 112,
ConnectionTimeout = 113,
DisconnectBehaviour = 114,
AsyncDbcFunctionsEnable = 117,
AsyncDbcEvent = 119,
EnlistInDtc = 1207,
EnlistInXa = 1208,
ConnectionDead = 1209,
AutoIpd = 10001,
MetadataId = 10014,
}
#[repr(i32)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum HeaderDiagnosticIdentifier {
ReturnCode = 1,
Number = 2,
RowCount = 3,
SqlState = 4,
Native = 5,
MessageText = 6,
DynamicFunction = 7,
ClassOrigin = 8,
SubclassOrigin = 9,
ConnectionName = 10,
ServerName = 11,
DynamicFunctionCode = 12,
CursorRowCount = -1249,
RowNumber = -1248,
ColumnNumber = -1247,
}
#[repr(i32)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum AsyncConnectionBehavior {
On = 1,
Off = 0,
}
impl Default for AsyncConnectionBehavior {
fn default() -> AsyncConnectionBehavior {
AsyncConnectionBehavior::Off
}
}
#[repr(i32)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum DynamicDiagnosticIdentifier {
AlterDomain = 3,
AlterTable = 4,
Call = 7,
CreateAssertion = 6,
CreateCharacterSet = 8,
CreateCollation = 10,
CreateDomain = 23,
CreateIndex = -1,
CreateSchema = 64,
CreateTable = 77,
CreateTranslation = 79,
CreateView = 84,
DeleteWhere = 19,
DropAssertion = 24,
DropCharacterSet = 25,
DropCollation = 26,
DropDomain = 27,
DropIndex = -2,
DropSchema = 31,
DropTable = 32,
DropTranslation = 33,
DropView = 36,
DynamicDeleteCursor = 38,
DynamicUpdateCursor = 81,
Grant = 48,
Insert = 50,
Revoke = 59,
SelectCursor = 85,
UnknownStatement = 0,
UpdateWhere = 82,
}
#[repr(i16)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum CompletionType {
Commit = 0,
Rollback = 1,
}