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