odbcserver.h

来自「OTP是开放电信平台的简称」· C头文件 代码 · 共 183 行

H
183
字号
/* ``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 via the world wide web 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. *  * The Initial Developer of the Original Code is Ericsson Utvecklings AB. * Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings * AB. All Rights Reserved.'' *  *     $Id$ *//* ----------------------------- CONSTANTS ------------------------------*/#define MAXCOLSIZE 8001#define MAX_ERR_MSG 1024#define ERRMSG_HEADR_SIZE 20#define MAX_CONN_STR_OUT 1024#define MAX_NAME 255#define TRUNCATED "01004"#define SQL_STATE_SIZE 6#define TRUE 1#define FALSE 0#define WAIT_FOR_NEW_MSG 0#define NEW_MSG_ARRIVED  1#define DEC_NUM_LENGTH 50/* 0 in this case (SQL_ATTR_CONNECTION_TIMEOUT) corresponds to erlang   infinity. Erlang will handle all timeouts so we do not want any in the   portprogram. */#define TIME_OUT 0  /* 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 Erlang. */ #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/* EXIT CODES */#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/* COL_SIZE */#define COL_SQL_SMALLINT 5#define COL_SQL_INTEGER 10#define COL_SQL_REAL 7#define COL_SQL_DOUBLE 15#define COL_SQL_TINYINT 4/* Types of parameters given to param_query*/#define USER_SMALL_INT 1#define USER_INT 2#define USER_DECIMAL 3#define USER_NMERIC 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/*------------------------   TYPDEFS  ----------------------------------*/typedef unsigned char byte;typedef int Boolean;typedef struct {    SQLSMALLINT c;    SQLSMALLINT sql;    SQLUINTEGER col_size;    SQLSMALLINT decimal_digits;    SQLUINTEGER len;    SQLINTEGER  strlen_or_indptr;    SQLINTEGER *strlen_or_indptr_array; } col_type;typedef struct {    char *buffer;    col_type type;} db_column;typedef struct {    int length;    byte *buffer;    Boolean dyn_alloc; } db_result_msg;typedef struct {    SQLCHAR sqlState[SQL_STATE_SIZE];    byte error_msg[MAX_ERR_MSG];} diagnos;typedef struct {    col_type type;    int offset;    union {	byte *string;	long *integer;	double *floating;	Boolean *bool;    }values;} param_array;typedef struct {    SQLUSMALLINT params_processed;    SQLUSMALLINT *param_status_array;  } param_status; typedef struct {    SQLHDBC connection_handle;         SQLHENV environment_handle;        SQLHSTMT statement_handle;    db_column *columns;    int number_of_columns;    ei_x_buff dynamic_buffer;    Boolean associated_result_set;    Boolean use_srollable_cursors;    Boolean tuple_row;    Boolean exists_more_result_sets;    Boolean param_query;} db_state;#define connection_handle(db_state) (db_state -> connection_handle)#define environment_handle(db_state) (db_state -> environment_handle)#define statement_handle(db_state) (db_state -> statement_handle)#define columns(db_state) (db_state -> columns)#define nr_of_columns(db_state) (db_state -> number_of_columns)#define dynamic_buffer(db_state) (db_state -> dynamic_buffer)#define associated_result_set(db_state) (db_state -> associated_result_set)#define use_srollable_cursors(db_state) (db_state -> use_srollable_cursors)#define tuple_row(db_state) (db_state -> tuple_row)#define exists_more_result_sets(db_state) (db_state -> exists_more_result_sets)#define param_query(db_state) (db_state -> param_query)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?