1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 pub const SQL_NULL_DATA: SQLLEN = -1;
4 pub const SQL_DATA_AT_EXEC: SQLLEN = -2;
5 pub const SQL_SUCCESS: SQLRETURN = 0;
6 pub const SQL_SUCCESS_WITH_INFO: SQLRETURN = 1;
7 pub const SQL_NO_DATA: SQLRETURN = 100;
8 pub const SQL_PARAM_DATA_AVAILABLE: SQLRETURN = 101;
9 pub const SQL_ERROR: SQLRETURN = -1;
10 pub const SQL_INVALID_HANDLE: SQLRETURN = -2;
11 pub const SQL_STILL_EXECUTING: SQLRETURN = 2;
12 pub const SQL_NEED_DATA: SQLRETURN = 99;
13 pub const SQL_NTS: SQLSMALLINT = -3;
14 pub const SQL_MAX_MESSAGE_LENGTH: usize = 512;
15 pub const SQL_DATE_LEN: usize = 10;
16 pub const SQL_TIME_LEN: usize = 8;
17 pub const SQL_TIMESTAMP_LEN: usize = 19;
18 pub const SQL_HANDLE_ENV: SQLSMALLINT = 1;
19 pub const SQL_HANDLE_DBC: SQLSMALLINT = 2;
20 pub const SQL_HANDLE_STMT: SQLSMALLINT = 3;
21 pub const SQL_HANDLE_DESC: SQLSMALLINT = 4;
22 pub const SQL_ATTR_OUTPUT_NTS: SQLINTEGER = 10001;
23 pub const SQL_ATTR_AUTO_IPD: SQLINTEGER = 10001;
24 pub const SQL_ATTR_METADATA_ID: SQLINTEGER = 10014;
25 pub const SQL_ATTR_APP_ROW_DESC: SQLINTEGER = 10010;
26 pub const SQL_ATTR_APP_PARAM_DESC: SQLINTEGER = 10011;
27 pub const SQL_ATTR_IMP_ROW_DESC: SQLINTEGER = 10012;
28 pub const SQL_ATTR_IMP_PARAM_DESC: SQLINTEGER = 10013;
29 pub const SQL_ATTR_CURSOR_SCROLLABLE: SQLINTEGER = -1;
30 pub const SQL_ATTR_CURSOR_SENSITIVITY: SQLINTEGER = -2;
31 
32 //Null handle used in place of parent handle when allocating HENV
33 pub const SQL_NULL_HANDLE: SQLHANDLE = 0 as SQLHANDLE;
34 
35 //Special length/indicator values
36 
37 //Return values from functions
38 
39 
40 //Values of NULLABLE field in descriptor
41 pub const SQL_NO_NULLS: SQLSMALLINT = 0;
42 pub const SQL_NULLABLE: SQLSMALLINT = 1;
43 pub const SQL_NULLABLE_UNKNOWN: SQLSMALLINT = 2;
44 
45 //Env attribute
46 pub const SQL_ATTR_ODBC_VERSION: SQLINTEGER = 200;
47 pub const SQL_ATTR_CONNECTION_POOLING: SQLINTEGER = 201;
48 pub const SQL_ATTR_CP_MATCH: SQLINTEGER = 202;
49 
50 //Values for SQL_ATTR_ODBC_VERSION
51 pub const SQL_OV_ODBC2: SQLINTEGER = 2;
52 pub const SQL_OV_ODBC3: SQLINTEGER = 3;
53 pub const SQL_OV_ODBC3_80: SQLINTEGER = 380;
54 
55 //Connection attributes
56 pub const SQL_ACCESS_MODE: SQLINTEGER = 101;
57 pub const SQL_AUTOCOMMIT: SQLINTEGER = 102;
58 pub const SQL_LOGIN_TIMEOUT: SQLINTEGER = 103;
59 pub const SQL_OPT_TRACE: SQLINTEGER = 104;
60 pub const SQL_OPT_TRACEFILE: SQLINTEGER = 105;
61 pub const SQL_TRANSLATE_DLL: SQLINTEGER = 106;
62 pub const SQL_TRANSLATE_OPTION: SQLINTEGER = 107;
63 pub const SQL_TXN_ISOLATION: SQLINTEGER = 108;
64 pub const SQL_CURRENT_QUALIFIER: SQLINTEGER = 109;
65 pub const SQL_ODBC_CURSORS: SQLINTEGER = 110;
66 pub const SQL_QUIET_MODE: SQLINTEGER = 111;
67 pub const SQL_PACKET_SIZE: SQLINTEGER = 112;
68 
69 //Connection attributes with new names
70 pub const SQL_ATTR_ACCESS_MODE: SQLINTEGER = SQL_ACCESS_MODE;
71 pub const SQL_ATTR_AUTOCOMMIT: SQLINTEGER = SQL_AUTOCOMMIT;
72 pub const SQL_ATTR_CONNECTION_TIMEOUT: SQLINTEGER = 113;
73 pub const SQL_ATTR_CURRENT_CATALOG: SQLINTEGER = SQL_CURRENT_QUALIFIER;
74 pub const SQL_ATTR_DISCONNECT_BEHAVIOR: SQLINTEGER = 114;
75 pub const SQL_ATTR_ENLIST_IN_DTC: SQLINTEGER = 1207;
76 pub const SQL_ATTR_ENLIST_IN_XA: SQLINTEGER = 1208;
77 pub const SQL_ATTR_LOGIN_TIMEOUT: SQLINTEGER = SQL_LOGIN_TIMEOUT;
78 pub const SQL_ATTR_ODBC_CURSORS: SQLINTEGER = SQL_ODBC_CURSORS;
79 pub const SQL_ATTR_PACKET_SIZE: SQLINTEGER = SQL_PACKET_SIZE;
80 pub const SQL_ATTR_QUIET_MODE: SQLINTEGER = SQL_QUIET_MODE;
81 pub const SQL_ATTR_TRACE: SQLINTEGER = SQL_OPT_TRACE;
82 pub const SQL_ATTR_TRACEFILE: SQLINTEGER = SQL_OPT_TRACEFILE;
83 pub const SQL_ATTR_TRANSLATE_LIB: SQLINTEGER = SQL_TRANSLATE_DLL;
84 pub const SQL_ATTR_TRANSLATE_OPTION: SQLINTEGER = SQL_TRANSLATE_OPTION;
85 pub const SQL_ATTR_TXN_ISOLATION: SQLINTEGER = SQL_TXN_ISOLATION;
86 pub const SQL_ATTR_CONNECTION_DEAD: SQLINTEGER = 1209;
87 
88 //Flags for null-terminated string
89 pub const SQL_NTS: SQLSMALLINT = -3;
90 
91 //Options for SQLDriverConnect
92 pub const SQL_DRIVER_NOPROMPT: SQLUSMALLINT = 0;
93 pub const SQL_DRIVER_COMPLETE: SQLUSMALLINT = 1;
94 pub const SQL_DRIVER_PROMPT: SQLUSMALLINT = 2;
95 pub const SQL_DRIVER_COMPLETE_REQUIRED: SQLUSMALLINT = 3;
96 
97 //Whether an attribute is a pointer or not
98 pub const SQL_IS_POINTER: SQLINTEGER = -4;
99 pub const SQL_IS_UINTEGER: SQLINTEGER = -5;
100 pub const SQL_IS_INTEGER: SQLINTEGER = -6;
101 pub const SQL_IS_USMALLINT: SQLINTEGER = -7;
102 pub const SQL_IS_SMALLINT: SQLINTEGER = -8;
103 
104 //FreeStmt options
105 pub const SQL_CLOSE: SQLUSMALLINT = 0;
106 pub const SQL_DROP: SQLUSMALLINT = 1;
107 pub const SQL_UNBIND: SQLUSMALLINT = 2;
108 pub const SQL_RESET_PARAMS: SQLUSMALLINT = 3;
109 
110 //C datatype to SQL datatype mapping
111 pub const SQL_UNKNOWN_TYPE: SQLSMALLINT = 0;
112 pub const SQL_CHAR: SQLSMALLINT = 1;
113 pub const SQL_NUMERIC: SQLSMALLINT = 2;
114 pub const SQL_DECIMAL: SQLSMALLINT = 3;
115 pub const SQL_INTEGER: SQLSMALLINT = 4;
116 pub const SQL_SMALLINT: SQLSMALLINT = 5;
117 pub const SQL_FLOAT: SQLSMALLINT = 6;
118 pub const SQL_REAL: SQLSMALLINT = 7;
119 pub const SQL_DOUBLE: SQLSMALLINT = 8;
120 pub const SQL_DATETIME: SQLSMALLINT = 9;
121 pub const SQL_VARCHAR: SQLSMALLINT = 12;
122 
123 pub const SQL_TYPE_DATE: SQLSMALLINT = 91;
124 pub const SQL_TYPE_TIME: SQLSMALLINT = 92;
125 pub const SQL_TYPE_TIMESTAMP: SQLSMALLINT = 93;
126 
127 pub const SQL_DATE: SQLSMALLINT = 9;
128 pub const SQL_INTERVAL: SQLSMALLINT = 10;
129 pub const SQL_TIME: SQLSMALLINT = 10;
130 pub const SQL_TIMESTAMP: SQLSMALLINT = 11;
131 pub const SQL_LONGVARCHAR: SQLSMALLINT = -1;
132 pub const SQL_BINARY: SQLSMALLINT = -2;
133 pub const SQL_VARBINARY: SQLSMALLINT = -3;
134 pub const SQL_LONGVARBINARY: SQLSMALLINT = -4;
135 pub const SQL_BIGINT: SQLSMALLINT = -5;
136 pub const SQL_TINYINT: SQLSMALLINT = -6;
137 pub const SQL_BIT: SQLSMALLINT = -7;
138 pub const SQL_GUID: SQLSMALLINT = -11;
139 
140 pub const SQL_C_CHAR: SQLSMALLINT = SQL_CHAR;
141 pub const SQL_C_LONG: SQLSMALLINT = SQL_INTEGER;
142 pub const SQL_C_SHORT: SQLSMALLINT = SQL_SMALLINT;
143 pub const SQL_C_FLOAT: SQLSMALLINT = SQL_REAL;
144 pub const SQL_C_DOUBLE: SQLSMALLINT = SQL_DOUBLE;
145 pub const SQL_C_NUMERIC: SQLSMALLINT = SQL_NUMERIC;
146 pub const SQL_C_DEFAULT: SQLSMALLINT = 99;
147 
148 pub const SQL_SIGNED_OFFSET: SQLSMALLINT = -20;
149 pub const SQL_UNSIGNED_OFFSET: SQLSMALLINT = -22;
150 
151 pub const SQL_C_DATE: SQLSMALLINT = SQL_DATE;
152 pub const SQL_C_TIME: SQLSMALLINT = SQL_TIME;
153 pub const SQL_C_TIMESTAMP: SQLSMALLINT = SQL_TIMESTAMP;
154 
155 pub const SQL_C_TYPE_DATE: SQLSMALLINT = SQL_TYPE_DATE;
156 pub const SQL_C_TYPE_TIME: SQLSMALLINT = SQL_TYPE_TIME;
157 pub const SQL_C_TYPE_TIMESTAMP: SQLSMALLINT = SQL_TYPE_TIMESTAMP;
158 
159 pub const SQL_C_BINARY: SQLSMALLINT = SQL_BINARY;
160 pub const SQL_C_BIT: SQLSMALLINT = SQL_BIT;
161 pub const SQL_C_SBIGINT: SQLSMALLINT = SQL_BIGINT + SQL_SIGNED_OFFSET;
162 pub const SQL_C_UBIGINT: SQLSMALLINT = SQL_BIGINT + SQL_UNSIGNED_OFFSET;
163 pub const SQL_C_TINYINT: SQLSMALLINT = SQL_TINYINT;
164 pub const SQL_C_SLONG: SQLSMALLINT = SQL_C_LONG + SQL_SIGNED_OFFSET;
165 pub const SQL_C_SSHORT: SQLSMALLINT = SQL_C_SHORT + SQL_SIGNED_OFFSET;
166 pub const SQL_C_STINYINT: SQLSMALLINT = SQL_TINYINT + SQL_SIGNED_OFFSET;
167 pub const SQL_C_ULONG: SQLSMALLINT = SQL_C_LONG + SQL_UNSIGNED_OFFSET;
168 pub const SQL_C_USHORT: SQLSMALLINT = SQL_C_SHORT + SQL_UNSIGNED_OFFSET;
169 pub const SQL_C_UTINYINT: SQLSMALLINT = SQL_TINYINT + SQL_UNSIGNED_OFFSET;
170 
171 pub const SQL_C_GUID: SQLSMALLINT = SQL_GUID;
172 
173 pub const SQL_WCHAR: SQLSMALLINT = -8;
174 pub const SQL_WVARCHAR: SQLSMALLINT = -9;
175 pub const SQL_WLONGVARCHAR: SQLSMALLINT = -10;
176 pub const SQL_C_WCHAR: SQLSMALLINT = SQL_WCHAR;
177 
178 pub const SQL_TYPE_NULL: SQLSMALLINT = 0;
179 
180