diff options
Diffstat (limited to 'src/interfaces/odbc/statement.h')
-rw-r--r-- | src/interfaces/odbc/statement.h | 80 |
1 files changed, 48 insertions, 32 deletions
diff --git a/src/interfaces/odbc/statement.h b/src/interfaces/odbc/statement.h index cc8e103d847..24f58bf0506 100644 --- a/src/interfaces/odbc/statement.h +++ b/src/interfaces/odbc/statement.h @@ -1,11 +1,11 @@ -
-/* File: statement.h
- *
- * Description: See "statement.c"
- *
- * Comments: See "notice.txt" for copyright and license information.
- *
- */
+ +/* File: statement.h + * + * Description: See "statement.c" + * + * Comments: See "notice.txt" for copyright and license information. + * + */ #ifndef __STATEMENT_H__ #define __STATEMENT_H__ @@ -45,18 +45,26 @@ typedef enum { #define STMT_RESTRICTED_DATA_TYPE_ERROR 14 #define STMT_INVALID_CURSOR_STATE_ERROR 15 #define STMT_OPTION_VALUE_CHANGED 16 - +#define STMT_CREATE_TABLE_ERROR 17 +#define STMT_NO_CURSOR_NAME 18 +#define STMT_INVALID_CURSOR_NAME 19 /* statement types */ -#define STMT_TYPE_SELECT 0 -#define STMT_TYPE_INSERT 1 -#define STMT_TYPE_UPDATE 2 -#define STMT_TYPE_DELETE 3 -#define STMT_TYPE_OTHER 4 -#define STMT_TYPE_UNKNOWN 666 // 'unknown' means we don't have the statement yet, - // or haven't looked at it to see what type it is. - // 'other' means we looked, but couldn't tell. +enum { + STMT_TYPE_UNKNOWN = -2, + STMT_TYPE_OTHER = -1, + STMT_TYPE_SELECT = 0, + STMT_TYPE_INSERT, + STMT_TYPE_UPDATE, + STMT_TYPE_DELETE, + STMT_TYPE_CREATE, + STMT_TYPE_ALTER, + STMT_TYPE_DROP, + STMT_TYPE_GRANT, + STMT_TYPE_REVOKE, +}; +#define STMT_UPDATE(stmt) (stmt->statement_type > STMT_TYPE_SELECT) /******** Statement Handle ***********/ struct StatementClass_ { @@ -68,6 +76,9 @@ struct StatementClass_ { char *errormsg; int errornumber; int maxRows; + int rowset_size; + int cursor_type; + int scroll_concurrency; /* information on bindings */ BindInfoClass *bindings; /* array to store the binding information */ @@ -78,30 +89,35 @@ struct StatementClass_ { ParameterInfoClass *parameters; Int4 currTuple; + int current_col; /* current column for GetData -- used to handle multiple calls */ + int lobj_fd; /* fd of the current large object */ char *statement; /* if non--null pointer to the SQL statement that has been executed */ -
+ int statement_type; /* According to the defines above */ - int data_at_exec; /* Number of params needing SQLPutData */
- int current_exec_param; /* The current parameter for SQLPutData */
-
- char put_data; /* Has SQLPutData been called yet? */
+ int data_at_exec; /* Number of params needing SQLPutData */ + int current_exec_param; /* The current parameter for SQLPutData */ + + char put_data; /* Has SQLPutData been called yet? */ char errormsg_created; /* has an informative error msg been created? */ char manual_result; /* Is the statement result manually built? */ - char prepare; /* is this statement a prepared statement or direct */
-
- char stmt_with_params[65536 /* MAX_STATEMENT_LEN */]; /* statement after parameter substitution */
+ char prepare; /* is this statement a prepared statement or direct */ + + char internal; /* Is this statement being called internally? */ + + char cursor_name[32]; + char stmt_with_params[65536 /* MAX_STATEMENT_LEN */]; /* statement after parameter substitution */ }; #define SC_get_conn(a) (a->hdbc) #define SC_get_Result(a) (a->result); -
-/* options for SC_free_params() */
-#define STMT_FREE_PARAMS_ALL 0
-#define STMT_FREE_PARAMS_DATA_AT_EXEC_ONLY 1
-
+ +/* options for SC_free_params() */ +#define STMT_FREE_PARAMS_ALL 0 +#define STMT_FREE_PARAMS_DATA_AT_EXEC_ONLY 1 + /* Statement prototypes */ StatementClass *SC_Constructor(); char SC_Destructor(StatementClass *self); @@ -113,7 +129,7 @@ char SC_recycle_statement(StatementClass *self); void SC_clear_error(StatementClass *self); char SC_get_error(StatementClass *self, int *number, char **message); char *SC_create_errormsg(StatementClass *self); -RETCODE SC_execute(StatementClass *stmt);
-void SC_free_params(StatementClass *self, char option);
+RETCODE SC_execute(StatementClass *stmt); +void SC_free_params(StatementClass *self, char option); #endif |