mod attributes;
mod bulk_operation;
mod c_data_type;
mod connection_attribute;
mod desc;
mod fetch_orientation;
mod functions;
mod handles;
mod indicator;
mod info_type;
mod interval;
mod nullability;
mod param_type;
mod set_pos;
mod sql_data_type;
mod sqlreturn;
pub use self::{
attributes::{
AttrConnectionPooling, AttrCpMatch, AttrOdbcVersion, EnvironmentAttribute,
StatementAttribute,
},
bulk_operation::BulkOperation,
c_data_type::*,
connection_attribute::ConnectionAttribute,
desc::Desc,
fetch_orientation::FetchOrientation,
functions::*,
handles::{HDbc, HDesc, HEnv, HStmt, Handle},
indicator::{len_data_at_exec, DATA_AT_EXEC, NO_TOTAL, NULL_DATA},
info_type::InfoType,
interval::Interval,
nullability::Nullability,
param_type::ParamType,
set_pos::{Lock, Operation},
sql_data_type::SqlDataType,
sqlreturn::SqlReturn,
};
use std::os::raw::{c_int, c_void};
pub type Pointer = *mut c_void;
pub type Char = u8;
pub type SChar = i8;
pub type WChar = u16;
pub type Len = isize;
pub type ULen = usize;
pub type HWnd = Pointer;
pub type RetCode = i16;
#[cfg(target_pointer_width = "64")]
pub type SetPosIRow = u64;
#[cfg(not(target_pointer_width = "64"))]
pub type SetPosIRow = i16;
pub const NTS: isize = -3;
pub const NTSL: isize = -3;
pub const MAX_MESSAGE_LENGTH: i16 = 512;
pub const SQLSTATE_SIZE: usize = 5;
pub const SQLSTATE_SIZEW: usize = 10;
#[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 HandleType {
Env = 1,
Dbc = 2,
Stmt = 3,
Desc = 4,
DbcInfoToken = 6,
}
#[repr(u16)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum DriverConnectOption {
NoPrompt = 0,
Complete = 1,
Prompt = 2,
CompleteRequired = 3,
}
pub const IS_POINTER: i32 = -4;
pub const IS_UINTEGER: i32 = -5;
pub const IS_INTEGER: i32 = -6;
pub const IS_USMALLINT: i32 = -7;
pub const IS_SMALLINT: i32 = -8;
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct YearMonth {
pub year: u32,
pub month: u32,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct DaySecond {
pub day: u32,
pub hour: u32,
pub minute: u32,
pub second: u32,
pub fraction: u32,
}
#[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: i16,
pub interval_value: IntervalUnion,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct Date {
pub year: i16,
pub month: u16,
pub day: u16,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct Time {
pub hour: u16,
pub minute: u16,
pub second: u16,
}
#[repr(C)]
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct Timestamp {
pub year: i16,
pub month: u16,
pub day: u16,
pub hour: u16,
pub minute: u16,
pub second: u16,
pub fraction: u32,
}
#[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(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, Default)]
pub enum AsyncConnectionBehavior {
On = 1,
#[default]
Off = 0,
}
#[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,
}
pub const MAX_NUMERIC_LEN: usize = 16;
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy, Default)]
pub struct Numeric {
pub precision: u8,
pub scale: i8,
pub sign: u8,
pub val: [u8; MAX_NUMERIC_LEN],
}