diff options
Diffstat (limited to 'lib/odbc/src/odbc_internal.hrl')
-rw-r--r-- | lib/odbc/src/odbc_internal.hrl | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/lib/odbc/src/odbc_internal.hrl b/lib/odbc/src/odbc_internal.hrl new file mode 100644 index 0000000000..144e3cd176 --- /dev/null +++ b/lib/odbc/src/odbc_internal.hrl @@ -0,0 +1,164 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2002-2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% + +% +%% + +%% Path to the c-program. +-define(SERVERDIR, filename:nativename( + filename:join(code:priv_dir(odbc), "bin"))). + +%% Name of the C program +-define(SERVERPROG, "odbcserver"). + +%% Constats defining the command protocol between the erlang control +%% process and the port program. These constants must also be defined +%% in the same way in the port program. + +-define(OPEN_CONNECTION, 1). +-define(CLOSE_CONNECTION, 2). +-define(COMMIT_TRANSACTION, 3). +-define(COMMIT, 4). +-define(ROLLBACK, 5). +-define(QUERY, 6). +-define(SELECT_COUNT, 7). +-define(SELECT_FIRST, 8). +-define(SELECT_LAST, 9). +-define(SELECT_NEXT, 10). +-define(SELECT_PREV, 11). +-define(SELECT, 12). +-define(SELECT_RELATIVE, 13). +-define(SELECT_ABSOLUTE, 14). +-define(SELECT_N_NEXT, 15). +-define(PARAM_QUERY, 16). +-define(DESCRIBE, 17). +-define(SHUTDOWN, 18). +-define(LENGTH_INDICATOR_SIZE, 4). +-define(INT_VALUE, 1). +-define(STR_VALUE, 2). +-define(ON, 1). +-define(OFF, 2). +-define(DUMMY_OFFSET, 0). + + +%% Types of parameters given to param_query +-define(USER_SMALL_INT, 1). +-define(USER_INT, 2). +-define(USER_DECIMAL, 3). +-define(USER_NUMERIC, 4). +-define(USER_CHAR, 5). +-define(USER_VARCHAR, 6). +-define(USER_FLOAT, 7). +-define(USER_REAL, 8). +-define(USER_DOUBLE, 9). +-define(USER_BOOLEAN, 10). +-define(USER_TINY_INT, 11). + +%% INPUT & OUTPUT TYPE +-define(IN, 0). +-define(OUT, 1). +-define(INOUT, 2). + +%% EXIT CODES +-define(EXIT_SUCCESS, 0). % As defined in c iso_stdlib +-define(EXIT_FAILURE, 1). % As defined in c iso_stdlib +-define(EXIT_ALLOC, 2). +-define(EXIT_ENV, 3). +-define(EXIT_CONNECTION, 4). +-define(EXIT_FREE, 5). +-define(EXIT_STDIN_HEADER, 6). +-define(EXIT_STDIN_BODY, 7). +-define(EXIT_BIN, 8). +-define(EXIT_THREAD, 9). +-define(EXIT_PARAM_ARRAY, 10). +-define(EXIT_OLD_WINSOCK, 11). +-define(EXIT_SOCKET_CONNECT, 12). +-define(EXIT_SOCKET_SEND_HEADER, 13). +-define(EXIT_SOCKET_SEND_BODY, 14). +-define(EXIT_SOCKET_RECV_MSGSIZE,15). +-define(EXIT_SOCKET_SEND_MSGSIZE,16). +-define(EXIT_SOCKET_RECV_HEADER, 17). +-define(EXIT_SOCKET_RECV_BODY, 18). +-define(EXIT_COLS, 19). +-define(EXIT_ROWS, 20). +-define(EXIT_DESC, 21). +-define(EXIT_BIND, 22). +-define(EXIT_DRIVER_INFO, 23). + +%% Misc constants +-define(DEFAULT_TIMEOUT, infinity). +-define(STR_TERMINATOR, 0). +-define(MAX_SEQ_TIMEOUTS, 10). + +%% Handling of C exit codes +-define(ENCODE_EXIT_FUN, + (fun(?EXIT_SUCCESS) -> + normal_exit; + (?EXIT_FAILURE) -> + abnormal_exit; + (?EXIT_ALLOC) -> + memory_allocation_failed; + (?EXIT_ENV) -> + setting_of_environment_attributes_failed; + (?EXIT_CONNECTION) -> + setting_of_connection_attributes_faild; + (?EXIT_FREE) -> + freeing_of_memory_failed; + (?EXIT_STDIN_HEADER) -> + receiving_port_message_header_failed; + (?EXIT_STDIN_BODY) -> + receiving_port_message_body_failed; + (?EXIT_BIN) -> + retrieving_of_binary_data_failed; + (?EXIT_THREAD) -> + failed_to_create_thread; + (?EXIT_PARAM_ARRAY) -> + does_not_support_param_arrays; + (?EXIT_OLD_WINSOCK) -> + too_old_verion_of_winsock; + (?EXIT_SOCKET_CONNECT) -> + socket_connect_failed; + (?EXIT_SOCKET_SEND_HEADER) -> + socket_send_message_header_failed; + (?EXIT_SOCKET_SEND_BODY) -> + socket_send_message_body_failed; + (?EXIT_SOCKET_RECV_MSGSIZE) -> + socket_received_too_large_message; + (?EXIT_SOCKET_SEND_MSGSIZE) -> + too_large_message_in_socket_send; + (?EXIT_SOCKET_RECV_HEADER) -> + socket_receive_message_header_failed; + (?EXIT_SOCKET_RECV_BODY) -> + socket_receive_message_body_failed; + (?EXIT_COLS) -> + could_not_access_column_count; + (?EXIT_ROWS) -> + could_not_access_row_count; + (?EXIT_DESC) -> + could_not_access_table_description; + (?EXIT_BIND) -> + could_not_bind_data_buffers; + (?EXIT_DRIVER_INFO) -> + collecting_of_driver_information_faild; + (_) -> + killed + end)). + +-define(PORT_EXIT_REASON(EXIT_STATUS), + ?ENCODE_EXIT_FUN(EXIT_STATUS)). |