1mod attributes;
12mod bulk_operation;
13mod c_data_type;
14mod desc;
15mod fetch_orientation;
16mod functions;
17mod handles;
18mod indicator;
19mod info_type;
20mod interval;
21mod nullability;
22mod param_type;
23mod set_pos;
24mod sql_data_type;
25mod sqlreturn;
26
27pub use self::{
28 attributes::*, bulk_operation::*, c_data_type::*, desc::*, fetch_orientation::*, functions::*,
29 handles::*, indicator::*, info_type::*, interval::*, nullability::*, param_type::*, set_pos::*,
30 sql_data_type::*, sqlreturn::*,
31};
32use std::os::raw::{c_int, c_void};
33
34pub type SmallInt = i16;
35pub type USmallInt = u16;
36pub type Integer = i32;
37pub type UInteger = u32;
38pub type Pointer = *mut c_void;
39pub type Char = u8;
40pub type SChar = i8;
41pub type WChar = u16;
42
43pub type Len = isize;
44pub type ULen = usize;
45pub type HWnd = Pointer;
46pub type RetCode = i16;
47
48#[cfg(target_pointer_width = "64")]
50pub type SetPosIRow = u64;
51#[cfg(not(target_pointer_width = "64"))]
53pub type SetPosIRow = i16;
54
55pub const NTS: isize = -3;
57pub const NTSL: isize = -3;
58
59pub const MAX_MESSAGE_LENGTH: SmallInt = 512;
61pub const SQLSTATE_SIZE: usize = 5;
62pub const SQLSTATE_SIZEW: usize = 10;
63
64#[repr(u16)]
66#[derive(Debug, PartialEq, Eq, Clone, Copy)]
67pub enum FreeStmtOption {
68 Close = 0,
74 Unbind = 2,
82 ResetParams = 3,
87}
88
89#[repr(i16)]
91#[derive(Debug, PartialEq, Eq, Clone, Copy)]
92pub enum HandleType {
93 Env = 1,
94 Dbc = 2,
95 Stmt = 3,
96 Desc = 4,
97 DbcInfoToken = 6,
101}
102
103#[repr(u16)]
105#[derive(Debug, PartialEq, Eq, Clone, Copy)]
106pub enum DriverConnectOption {
107 NoPrompt = 0,
108 Complete = 1,
109 Prompt = 2,
110 CompleteRequired = 3,
111}
112
113pub const IS_POINTER: i32 = -4;
117pub const IS_UINTEGER: i32 = -5;
119pub const IS_INTEGER: i32 = -6;
121pub const IS_USMALLINT: i32 = -7;
123pub const IS_SMALLINT: i32 = -8;
125
126#[repr(C)]
128#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
129pub struct YearMonth {
130 pub year: UInteger,
131 pub month: UInteger,
132}
133
134#[repr(C)]
136#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
137pub struct DaySecond {
138 pub day: UInteger,
139 pub hour: UInteger,
140 pub minute: UInteger,
141 pub second: UInteger,
142 pub fraction: UInteger,
143}
144
145#[repr(C)]
147#[derive(Copy, Clone)]
148pub union IntervalUnion {
149 pub year_month: YearMonth,
150 pub day_second: DaySecond,
151}
152
153#[repr(C)]
155#[derive(Clone, Copy)]
156pub struct IntervalStruct {
157 pub interval_type: c_int,
158 pub interval_sign: SmallInt,
159 pub interval_value: IntervalUnion,
160}
161
162#[repr(C)]
164#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
165pub struct Date {
166 pub year: SmallInt,
167 pub month: USmallInt,
168 pub day: USmallInt,
169}
170
171#[repr(C)]
173#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
174pub struct Time {
175 pub hour: USmallInt,
176 pub minute: USmallInt,
177 pub second: USmallInt,
178}
179
180#[repr(C)]
182#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
183pub struct Timestamp {
184 pub year: SmallInt,
185 pub month: USmallInt,
186 pub day: USmallInt,
187 pub hour: USmallInt,
188 pub minute: USmallInt,
189 pub second: USmallInt,
190 pub fraction: UInteger,
191}
192
193#[repr(C)]
195#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
196pub struct Guid {
197 pub d1: u32,
198 pub d2: u16,
199 pub d3: u16,
200 pub d4: [u8; 8],
201}
202
203#[repr(i32)]
205#[derive(Debug, PartialEq, Eq, Clone, Copy)]
206pub enum ConnectionAttribute {
207 AsyncEnable = 4,
208 AccessMode = 101,
209 AutoCommit = 102,
210 LoginTimeout = 103,
211 Trace = 104,
212 TraceFile = 105,
213 TranslateLib = 106,
214 TranslateOption = 107,
215 TxnIsolation = 108,
216 CurrentCatalog = 109,
217 OdbcCursors = 110,
218 QuietMode = 111,
219 PacketSize = 112,
220 ConnectionTimeout = 113,
221 DisconnectBehaviour = 114,
222 AsyncDbcFunctionsEnable = 117,
223 AsyncDbcEvent = 119,
224 EnlistInDtc = 1207,
225 EnlistInXa = 1208,
226 ConnectionDead = 1209,
227 AutoIpd = 10001,
228 MetadataId = 10014,
229}
230
231#[repr(i32)]
233#[derive(Debug, PartialEq, Eq, Clone, Copy)]
234pub enum HeaderDiagnosticIdentifier {
235 ReturnCode = 1,
237 Number = 2,
239 RowCount = 3,
241 SqlState = 4,
243 Native = 5,
245 MessageText = 6,
247 DynamicFunction = 7,
249 ClassOrigin = 8,
251 SubclassOrigin = 9,
253 ConnectionName = 10,
255 ServerName = 11,
257 DynamicFunctionCode = 12,
259 CursorRowCount = -1249,
261 RowNumber = -1248,
263 ColumnNumber = -1247,
265}
266
267#[repr(i32)]
268#[derive(Debug, PartialEq, Eq, Clone, Copy, Default)]
269pub enum AsyncConnectionBehavior {
270 On = 1,
272 #[default]
274 Off = 0,
275}
276
277#[repr(i32)]
278#[derive(Debug, PartialEq, Eq, Clone, Copy)]
279pub enum DynamicDiagnosticIdentifier {
280 AlterDomain = 3,
282 AlterTable = 4,
284 Call = 7,
286 CreateAssertion = 6,
288 CreateCharacterSet = 8,
290 CreateCollation = 10,
292 CreateDomain = 23,
294 CreateIndex = -1,
296 CreateSchema = 64,
298 CreateTable = 77,
300 CreateTranslation = 79,
302 CreateView = 84,
304 DeleteWhere = 19,
306 DropAssertion = 24,
308 DropCharacterSet = 25,
310 DropCollation = 26,
312 DropDomain = 27,
314 DropIndex = -2,
316 DropSchema = 31,
318 DropTable = 32,
320 DropTranslation = 33,
322 DropView = 36,
324 DynamicDeleteCursor = 38,
326 DynamicUpdateCursor = 81,
328 Grant = 48,
330 Insert = 50,
332 Revoke = 59,
334 SelectCursor = 85,
336 UnknownStatement = 0,
338 UpdateWhere = 82,
340}
341
342#[repr(i16)]
344#[derive(Debug, PartialEq, Eq, Clone, Copy)]
345pub enum CompletionType {
346 Commit = 0,
347 Rollback = 1,
348}
349
350pub const MAX_NUMERIC_LEN: usize = 16;
351#[repr(C)]
352#[derive(Debug, PartialEq, Eq, Clone, Copy, Default)]
353pub struct Numeric {
354 pub precision: Char,
355 pub scale: SChar,
357 pub sign: Char,
359 pub val: [Char; MAX_NUMERIC_LEN],
360}