diff options
| author | Stig Bakken <ssb@php.net> | 1999-04-20 01:03:12 +0000 |
|---|---|---|
| committer | Stig Bakken <ssb@php.net> | 1999-04-20 01:03:12 +0000 |
| commit | 54468d2e75aeb1ace053ff405f5f539a0012ba76 (patch) | |
| tree | e308e39abaefdb62a90deaeb6329ca023f815592 /ext/odbc/php3_odbc.h | |
| parent | b7c30c1bdf209bc270755bcafac45908fc8daf2f (diff) | |
| download | php-git-54468d2e75aeb1ace053ff405f5f539a0012ba76.tar.gz | |
odbc compiles and runs on UNIX again (tested with Solid 2.3)
Diffstat (limited to 'ext/odbc/php3_odbc.h')
| -rw-r--r-- | ext/odbc/php3_odbc.h | 680 |
1 files changed, 106 insertions, 574 deletions
diff --git a/ext/odbc/php3_odbc.h b/ext/odbc/php3_odbc.h index 1357553e27..2e5abe9d22 100644 --- a/ext/odbc/php3_odbc.h +++ b/ext/odbc/php3_odbc.h @@ -30,377 +30,39 @@ /* $Id$ */ -#ifndef _UNIFIED_ODBC_H -#define _UNIFIED_ODBC_H +#ifndef _PHP_ODBC_H +# define _PHP_ODBC_H -#if HAVE_UODBC +# if HAVE_UODBC -/*these defines are used to seperate the different -database modules that use the uodbc interface so that -two or more of them can be compiled into the same -php binary*/ - -/* -* -* Defines for ODBC -* -*/ -#if HAVE_UODBC -/* win32 vars for thread local storage */ -#define UODBC_MUTEX uodbc_mutex -#define UODBC_TLS UODBCTls -#define UODBC_GLOBAL_STRUCT uodbc_global_struct -#define UODBC_GLOBALS uodbc_globals -/* defines for variables, structs, etc */ -#define UODBC_MODULE_NAME "ODBC (uODBC)" -#define UODBC_FUNCTIONS uodbc_functions -#define UODBC_MODULE_ENTRY uodbc_module_entry -#define UODBC_CONNECTION uodbc_connection -#define UODBC_RESULT_VALUE uodbc_result_value -#define UODBC_RESULT uodbc_result -#define UODBC_MODULE uodbc_module -#define PHP3_UODBC_MODULE php3_uodbc_module - -/* function defines */ -#define PHP3_MINIT_UODBC php3_minit_uodbc -#define PHP3_MSHUTDOWN_UODBC php3_mshutdown_uodbc -#define PHP3_RINIT_UODBC php3_rinit_uodbc -#define PHP3_INFO_UODBC php3_info_uodbc -#define PHP3_UODBC_SETOPTION php3_uodbc_setoption -#define PHP3_UODBC_AUTOCOMMIT php3_uodbc_autocommit -#define PHP3_UODBC_CLOSE php3_uodbc_close -#define PHP3_UDOBC_CLOSE_ALL php3_uodbc_close_all -#define PHP3_UODBC_COMMIT php3_uodbc_commit -#define PHP3_UODBC_CONNECT php3_uodbc_connect -#define PHP3_UODBC_PCONNECT php3_uodbc_pconnect -#define PHP3_UODBC_DO_CONNECT php3_uodbc_do_connect -#define PHP3_UODBC_CURSOR php3_uodbc_cursor -#define PHP3_UODBC_DO php3_uodbc_do -#define PHP3_UODBC_EXECUTE php3_uodbc_execute -#define PHP3_UODBC_FETCH_INTO php3_uodbc_fetch_into -#define PHP3_UODBC_FETCH_ROW php3_uodbc_fetch_row -#define PHP3_UODBC_FIELD_LEN php3_uodbc_field_len -#define PHP3_UODBC_FIELD_NAME php3_uodbc_field_name -#define PHP3_UODBC_FIELD_TYPE php3_uodbc_field_type -#define PHP3_UODBC_FIELD_NUM php3_uodbc_field_num -#define PHP3_UODBC_FREE_RESULT php3_uodbc_free_result -#define PHP3_UODBC_NUM_FIELDS php3_uodbc_num_fields -#define PHP3_UODBC_NUM_ROWS php3_uodbc_num_rows -#define PHP3_UODBC_PREPARE php3_uodbc_prepare -#define PHP3_UODBC_RESULT php3_uodbc_result -#define PHP3_UODBC_RESULT_ALL php3_uodbc_result_all -#define PHP3_UODBC_ROLLBACK php3_uodbc_rollback -#define PHP3_UODBC_TRANSACT php3_uodbc_transact -#define PHP3_UODBC_BINMODE php3_uodbc_binmode -#define PHP3_UODBC_LONGREADLEN php3_uodbc_longreadlen - -/* internal function defines */ -#define UODBC_ADD_RESULT uodbc_add_result -#define UODBC_GET_RESULT uodbc_get_result -#define UODBC_DEL_RESULT uodbc_del_result -#define UODBC_ADD_CONN uodbc_add_conn -#define UODBC_GET_CONN uodbc_get_conn -#define UODBC_DEL_CONN uodbc_del_conn -#define UODBC_SQL_ERROR uodbc_sql_error -#define UODBC_BINDCOLS uodbc_bindcols -#define _FREE_UODBC_RESULT _free_uodbc_result -#define _CLOSE_UODBC_CONNECTION _close_uodbc_connection -#define _CLOSE_UODBC_PCONNECTION _close_uodbc_pconnection -/* function name defines */ -#define ODBC_SETOPTION "odbc_setoption" -#define ODBC_AUTOCOMMIT "odbc_autocommit" -#define ODBC_CLOSE "odbc_close" -#define ODBC_CLOSE_ALL "odbc_close_all" -#define ODBC_COMMIT "odbc_commit" -#define ODBC_CONNECT "odbc_connect" -#define ODBC_PCONNECT "odbc_pconnect" -#define ODBC_CURSOR "odbc_cursor" -#define ODBC_DO "odbc_do" -#define ODBC_EXEC "odbc_exec" -#define ODBC_PREPARE "odbc_prepare" -#define ODBC_EXECUTE "odbc_execute" -#define ODBC_FETCH_ROW "odbc_fetch_row" -#define ODBC_FETCH_INTO "odbc_fetch_into" -#define ODBC_FIELD_LEN "odbc_field_len" -#define ODBC_FIELD_NAME "odbc_field_name" -#define ODBC_FIELD_TYPE "odbc_field_type" -#define ODBC_FIELD_NUM "odbc_field_num" -#define ODBC_FREE_RESULT "odbc_free_result" -#define ODBC_NUM_FIELDS "odbc_num_fields" -#define ODBC_NUM_ROWS "odbc_num_rows" -#define ODBC_RESULT "odbc_result" -#define ODBC_RESULT_ALL "odbc_result_all" -#define ODBC_ROLLBACK "odbc_rollback" -#define ODBC_TRANSACT "odbc_transact" -#define ODBC_DO_CONNECT "odbc_do_connect" -#define ODBC_LONGREADLEN "odbc_longreadlen" -#define ODBC_BINMODE "odbc_binmode" - -/* ini variable defines */ -#define ODBC_INI_DEFAULTDB "uodbc.default_db" -#define ODBC_INI_DEFAULTUSER "uodbc.default_user" -#define ODBC_INI_DEFAULTPW "uodbc.default_pw" -#define ODBC_INI_ALLOWPERSISTENT "uodbc.allow_persistent" -#define ODBC_INI_MAXPERSISTENT "uodbc.max_persistent" -#define ODBC_INI_MAXLINKS "uodbc.max_links" -#define ODBC_INI_DEFAULTLRL "uodbc.defaultlrl" -#define ODBC_INI_DEFAULTBINMODE "uodbc.defaultbinmode" -#endif - -/* -* -* Defines for SOLID -* -*/ - - -#if 0 /* HAVE_SOLID turned off for now, - will use above uodbc defines for now */ -/* win32 vars for thread local storage */ -#define UODBC_MUTEX solid_mutex -#define UODBC_TLS SOLIDTls -#define UODBC_GLOBAL_STRUCT solid_global_struct -#define UODBC_GLOBALS solid_globals -/* defines for variables, structs, etc */ -#define UODBC_MODULE_NAME "SOLID (uODBC)" -#define UODBC_FUNCTIONS solid_functions -#define UODBC_MODULE_ENTRY solid_module_entry -#define UODBC_CONNECTION solid_connection -#define UODBC_RESULT_VALUE solid_result_value -#define UODBC_RESULT solid_result -#define UODBC_MODULE solid_module -#define PHP3_UODBC_MODULE php3_solid_module - -/* function defines */ -#define PHP3_MINIT_UODBC php3_minit_solid -#define PHP3_MSHUTDOWN_UODBC php3_mshutdown_solid -#define PHP3_RINIT_UODBC php3_rinit_solid -#define PHP3_INFO_UODBC php3_info_solid -#define PHP3_UODBC_SETOPTION php3_solid_setoption -#define PHP3_UODBC_AUTOCOMMIT php3_solid_autocommit -#define PHP3_UODBC_CLOSE php3_solid_close -#define PHP3_UDOBC_CLOSE_ALL php3_solid_close_all -#define PHP3_UODBC_COMMIT php3_solid_commit -#define PHP3_UODBC_CONNECT php3_solid_connect -#define PHP3_UODBC_PCONNECT php3_solid_pconnect -#define PHP3_UODBC_DO_CONNECT php3_solid_do_connect -#define PHP3_UODBC_CURSOR php3_solid_cursor -#define PHP3_UODBC_DO php3_solid_do -#define PHP3_UODBC_EXECUTE php3_solid_execute -#define PHP3_UODBC_FETCH_INTO php3_solid_fetch_into -#define PHP3_UODBC_FETCH_ROW php3_solid_fetch_row -#define PHP3_UODBC_FIELD_LEN php3_solid_field_len -#define PHP3_UODBC_FIELD_NAME php3_solid_field_name -#define PHP3_UODBC_FIELD_TYPE php3_solid_field_type -#define PHP3_UODBC_FREE_RESULT php3_solid_free_result -#define PHP3_UODBC_NUM_FIELDS php3_solid_num_fields -#define PHP3_UODBC_NUM_ROWS php3_solid_num_rows -#define PHP3_UODBC_PREPARE php3_solid_prepare -#define PHP3_UODBC_RESULT php3_solid_result -#define PHP3_UODBC_RESULT_ALL php3_solid_result_all -#define PHP3_UODBC_ROLLBACK php3_solid_rollback -#define PHP3_UODBC_TRANSACT php3_solid_transact - -/* internal function defines */ -#define UODBC_ADD_RESULT solid_add_result -#define UODBC_GET_RESULT solid_get_result -#define UODBC_DEL_RESULT solid_del_result -#define UODBC_ADD_CONN solid_add_conn -#define UODBC_GET_CONN solid_get_conn -#define UODBC_DEL_CONN solid_del_conn -#define UODBC_SQL_ERROR solid_sql_error -#define UODBC_BINDCOLS solid_bindcols -#define _FREE_UODBC_RESULT _free_solid_result -#define _CLOSE_UODBC_CONNECTION _close_solid_connection -#define _CLOSE_UODBC_PCONNECTION _close_solid_pconnection -/* function name defines */ -#define ODBC_SETOPTION "solid_setoption" -#define ODBC_AUTOCOMMIT "solid_autocommit" -#define ODBC_CLOSE "solid_close" -#define ODBC_CLOSE_ALL "solid_close_all" -#define ODBC_COMMIT "solid_commit" -#define ODBC_CONNECT "solid_connect" -#define ODBC_PCONNECT "solid_pconnect" -#define ODBC_CURSOR "solid_cursor" -#define ODBC_DO "solid_do" -#define ODBC_EXEC "solid_exec" -#define ODBC_PREPARE "solid_prepare" -#define ODBC_EXECUTE "solid_execute" -#define ODBC_FETCH_ROW "solid_fetch_row" -#define ODBC_FETCH_INTO "solid_fetch_into" -#define ODBC_FIELD_LEN "solid_field_len" -#define ODBC_FIELD_NAME "solid_field_name" -#define ODBC_FIELD_TYPE "solid_field_type" -#define ODBC_FREE_RESULT "solid_free_result" -#define ODBC_NUM_FIELDS "solid_num_fields" -#define ODBC_NUM_ROWS "solid_num_rows" -#define ODBC_RESULT "solid_result" -#define ODBC_RESULT_ALL "solid_result_all" -#define ODBC_ROLLBACK "solid_rollback" -#define ODBC_TRANSACT "solid_transact" -#define ODBC_DO_CONNECT "solid_do_connect" - -/* ini variable defines */ -#define ODBC_INI_DEFAULTDB "solid.default_db" -#define ODBC_INI_DEFAULTUSER "solid.default_user" -#define ODBC_INI_DEFAULTPW "solid.default_pw" -#define ODBC_INI_ALLOWPERSISTENT "solid.allow_persistent" -#define ODBC_INI_MAXPERSISTENT "solid.max_persistent" -#define ODBC_INI_MAXLINKS "solid.max_links" -#endif +# ifndef MSVC5 +# define FAR +# endif +/* checking in the same order as in configure.in */ -/* -* -* Defines for ADABAS -* -*/ - - -#if 0 /* HAVE_ADABAS turned for for now, uses - defines from the ODBC section */ -/* win32 vars for thread local storage */ -#define UODBC_MUTEX adabas_mutex -#define UODBC_TLS ADABASTls -#define UODBC_GLOBAL_STRUCT adabas_global_struct -#define UODBC_GLOBALS adabas_globals -/* defines for variables, structs, etc */ -#define UODBC_MODULE_NAME "ADABAS D (uODBC)" -#define UODBC_FUNCTIONS adabas_functions -#define UODBC_MODULE_ENTRY adabas_module_entry -#define UODBC_CONNECTION adabas_connection -#define UODBC_RESULT_VALUE adabas_result_value -#define UODBC_RESULT adabas_result -#define UODBC_MODULE adabas_module -#define PHP3_UODBC_MODULE php3_adabas_module - -/* function defines */ -#define PHP3_MINIT_UODBC php3_minit_adabas -#define PHP3_MSHUTDOWN_UODBC php3_mshutdown_adabas -#define PHP3_RINIT_UODBC php3_rinit_adabas -#define PHP3_INFO_UODBC php3_info_adabas -#define PHP3_UODBC_SETOPTION php3_adabas_setoption -#define PHP3_UODBC_AUTOCOMMIT php3_adabas_autocommit -#define PHP3_UODBC_CLOSE php3_adabas_close -#define PHP3_UDOBC_CLOSE_ALL php3_adabas_close_all -#define PHP3_UODBC_COMMIT php3_adabas_commit -#define PHP3_UODBC_CONNECT php3_adabas_connect -#define PHP3_UODBC_PCONNECT php3_adabas_pconnect -#define PHP3_UODBC_DO_CONNECT php3_adabas_do_connect -#define PHP3_UODBC_CURSOR php3_adabas_cursor -#define PHP3_UODBC_DO php3_adabas_do -#define PHP3_UODBC_EXECUTE php3_adabas_execute -#define PHP3_UODBC_FETCH_INTO php3_adabas_fetch_into -#define PHP3_UODBC_FETCH_ROW php3_adabas_fetch_row -#define PHP3_UODBC_FIELD_LEN php3_adabas_field_len -#define PHP3_UODBC_FIELD_NAME php3_adabas_field_name -#define PHP3_UODBC_FIELD_TYPE php3_adabas_field_type -#define PHP3_UODBC_FREE_RESULT php3_adabas_free_result -#define PHP3_UODBC_NUM_FIELDS php3_adabas_num_fields -#define PHP3_UODBC_NUM_ROWS php3_adabas_num_rows -#define PHP3_UODBC_PREPARE php3_adabas_prepare -#define PHP3_UODBC_RESULT php3_adabas_result -#define PHP3_UODBC_RESULT_ALL php3_adabas_result_all -#define PHP3_UODBC_ROLLBACK php3_adabas_rollback -#define PHP3_UODBC_TRANSACT php3_adabas_transact - -/* internal function defines */ -#define UODBC_ADD_RESULT adabas_add_result -#define UODBC_GET_RESULT adabas_get_result -#define UODBC_DEL_RESULT adabas_del_result -#define UODBC_ADD_CONN adabas_add_conn -#define UODBC_GET_CONN adabas_get_conn -#define UODBC_DEL_CONN adabas_del_conn -#define UODBC_SQL_ERROR adabas_sql_error -#define UODBC_BINDCOLS adabas_bindcols -#define _FREE_UODBC_RESULT _free_adabas_result -#define _CLOSE_UODBC_CONNECTION _close_adabas_connection -#define _CLOSE_UODBC_PCONNECTION _close_adabas_pconnection -/* function name defines */ -#define ODBC_SETOPTION "adabas_setoption" -#define ODBC_AUTOCOMMIT "adabas_autocommit" -#define ODBC_CLOSE "adabas_close" -#define ODBC_CLOSE_ALL "adabas_close_all" -#define ODBC_COMMIT "adabas_commit" -#define ODBC_CONNECT "adabas_connect" -#define ODBC_PCONNECT "adabas_pconnect" -#define ODBC_CURSOR "adabas_cursor" -#define ODBC_DO "adabas_do" -#define ODBC_EXEC "adabas_exec" -#define ODBC_PREPARE "adabas_prepare" -#define ODBC_EXECUTE "adabas_execute" -#define ODBC_FETCH_ROW "adabas_fetch_row" -#define ODBC_FETCH_INTO "adabas_fetch_into" -#define ODBC_FIELD_LEN "adabas_field_len" -#define ODBC_FIELD_NAME "adabas_field_name" -#define ODBC_FIELD_TYPE "adabas_field_type" -#define ODBC_FREE_RESULT "adabas_free_result" -#define ODBC_NUM_FIELDS "adabas_num_fields" -#define ODBC_NUM_ROWS "adabas_num_rows" -#define ODBC_RESULT "adabas_result" -#define ODBC_RESULT_ALL "adabas_result_all" -#define ODBC_ROLLBACK "adabas_rollback" -#define ODBC_TRANSACT "adabas_transact" -#define ODBC_DO_CONNECT "adabas_do_connect" - -/* ini variable defines */ -#define ODBC_INI_DEFAULTDB "adabas.default_db" -#define ODBC_INI_DEFAULTUSER "adabas.default_user" -#define ODBC_INI_DEFAULTPW "adabas.default_pw" -#define ODBC_INI_ALLOWPERSISTENT "adabas.allow_persistent" -#define ODBC_INI_MAXPERSISTENT "adabas.max_persistent" -#define ODBC_INI_MAXLINKS "adabas.max_links" -#endif +# if HAVE_SOLID /* Solid Server */ -/* checking in the same order as in configure.in */ -# if HAVE_SOLID # include <cli0core.h> # include <cli0ext1.h> # define HAVE_SQL_EXTENDED_FETCH 0 extern void php3_solid_fetch_prev(INTERNAL_FUNCTION_PARAMETERS); -# if defined(UODBC_UNIQUE_NAMES) -# define UODBC_TYPE solid -# define UODBC_NAME "solid" -# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(solid_##name, php3_solid_##name, arg_types) -# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(solid_##php_name, php3_solid_##name, arg_types) -# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_solid_##name) -# define UODBC_FNAME(name) php3i_solid_##name -# define ODBC_INI_VAR_NAME(name) #name -# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(solid.##a) -# define UODBC_VAR_NAME(name) name -# define UODBC_VAR(a) UODBC_VAR_NAME(solid_##a) -# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_solid_##a) -# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -# define solid_module_ptr &UODBC_MODULE_ENTRY -# endif -#elif HAVE_EMPRESS +# elif HAVE_EMPRESS /* Empress */ + # include <sql.h> # include <sqlext.h> # define HAVE_SQL_EXTENDED_FETCH 0 -#elif HAVE_ADABAS -#include <WINDOWS.H> -#include <sql.h> -#include <sqlext.h> +# elif HAVE_ADABAS /* Adabas D */ + +# include <WINDOWS.H> +# include <sql.h> +# include <sqlext.h> # define HAVE_SQL_EXTENDED_FETCH 1 -# if defined(UODBC_UNIQUE_NAMES) -# define UODBC_TYPE adabas -# define UODBC_NAME "adabas" -# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(ada_##name, php3_ada_##name, arg_types) -# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(ada_##php_name, php3_ada_##name, arg_types) -# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_ada_##name) -# define UODBC_FNAME(name) php3i_ada_##name -# define ODBC_INI_VAR_NAME(name) #name -# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(ada.##a) -# define UODBC_VAR_NAME(name) name -# define UODBC_VAR(a) UODBC_VAR_NAME(ada_##a) -# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_ada_##a) -# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -# define ada_module_ptr &UODBC_MODULE_ENTRY -# endif -# elif HAVE_IODBC && !(WIN32|WINNT) +# elif HAVE_IODBC /* iODBC library */ + # include <isql.h> # include <isqlext.h> # include <odbc_types.h> @@ -412,255 +74,105 @@ extern void php3_solid_fetch_prev(INTERNAL_FUNCTION_PARAMETERS); # define SQL_SO_DYNAMIC 0x00000004L # define SQL_LEN_DATA_AT_EXEC_OFFSET (-100) # define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET) -# if defined(UODBC_UNIQUE_NAMES) -# define UODBC_TYPE iodbc -# define UODBC_NAME "iodbc" -# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(iodbc_##name, php3_iodbc_##name, arg_types) -# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(iodbc_##php_name, php3_iodbc_##name, arg_types) -# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_iodbc_##name) -# define UODBC_FNAME(name) php3i_iodbc_##name -# define ODBC_INI_VAR_NAME(name) #name -# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(iodbc.##a) -# define UODBC_VAR_NAME(name) name -# define UODBC_VAR(a) UODBC_VAR_NAME(iodbc_##a) -# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_iodbc_##a) -# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -# define iodbc_module_ptr &UODBC_MODULE_ENTRY -# endif -#elif HAVE_OPENLINK +# elif HAVE_OPENLINK /* OpenLink ODBC drivers */ # include <iodbc.h> # include <isql.h> # include <isqlext.h> # include <udbcext.h> # define HAVE_SQL_EXTENDED_FETCH 1 -# if defined(UODBC_UNIQUE_NAMES) -# define UODBC_TYPE opnlnk -# define UODBC_NAME "opnlnk" -# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(opnlnk_##name, php3_opnlnk_##name, arg_types) -# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(opnlnk_##php_name, php3_opnlnk_##name, arg_types) -# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_opnlnk_##name) -# define UODBC_FNAME(name) php3i_opnlnk_##name -# define ODBC_INI_VAR_NAME(name) #name -# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(opnlnk.##a) -# define UODBC_VAR_NAME(name) name -# define UODBC_VAR(a) UODBC_VAR_NAME(opnlnk_##a) -# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_opnlnk_##a) -# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -# define opnlnk_module_ptr &UODBC_MODULE_ENTRY -# endif -#elif HAVE_VELOCIS -/* Nothing ??? */ +# elif HAVE_VELOCIS /* Raima Velocis */ + # define UNIX # define HAVE_SQL_EXTENDED_FETCH 1 # include <sql.h> # include <sqlext.h> -# if defined(UODBC_UNIQUE_NAMES) -# define UODBC_TYPE velocis -# define UODBC_NAME "velocis" -# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(velocis_##name, php3_velocis_##name, arg_types) -# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(velocis_##php_name, php3_velocis_##name, arg_types) -# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_velocis_##name) -# define UODBC_FNAME(name) php3i_velocis_##name -# define ODBC_INI_VAR_NAME(name) #name -# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(velocis.##a) -# define UODBC_VAR_NAME(name) name -# define UODBC_VAR(a) UODBC_VAR_NAME(velocis_##a) -# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_velocis_##a) -# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -# define velocis_module_ptr &UODBC_MODULE_ENTRY -# endif -#elif HAVE_CODBC +# elif HAVE_CODBC /* Custom ODBC */ + # define HAVE_SQL_EXTENDED_FETCH 1 # include <odbc.h> -# if defined(UODBC_UNIQUE_NAMES) -# define UODBC_TYPE codbc -# define UODBC_NAME "codbc" -# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(codbc_##name, php3_codbc_##name, arg_types) -# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(codbc_##php_name, php3_codbc_##name, arg_types) -# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_codbc_##name) -# define UODBC_FNAME(name) php3i_codbc_##name -# define ODBC_INI_VAR_NAME(name) #name -# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(codbc.##a) -# define UODBC_VAR_NAME(name) name -# define UODBC_VAR(a) UODBC_VAR_NAME(codbc_##a) -# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_codbc_##a) -# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -# define codbc_module_ptr &UODBC_MODULE_ENTRY -# endif -#elif HAVE_DB2 +# elif HAVE_DB2 /* DB2 CLI */ + # define HAVE_SQL_EXTENDED_FETCH 1 # include <sqlcli1.h> # ifdef DB268K /* Need to include ASLM for 68K applications */ # include <LibraryManager.h> # endif -# if defined(UODBC_UNIQUE_NAMES) -# define UODBC_TYPE db2 -# define UODBC_NAME "db2" -# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(db2_##name, php3_db2_##name, arg_types) -# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(db2_##php_name, php3_db2_##name, arg_types) -# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_db2_##name) -# define UODBC_FNAME(name) php3i_db2_##name -# define ODBC_INI_VAR_NAME(name) #name -# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(db2.##a) -# define UODBC_VAR_NAME(name) name -# define UODBC_VAR(a) UODBC_VAR_NAME(db2_##a) -# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_db2_##a) -# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -# define db2_module_ptr &UODBC_MODULE_ENTRY -# endif # else /* MS ODBC */ + # define HAVE_SQL_EXTENDED_FETCH 1 # include <WINDOWS.H> # include <sql.h> # include <sqlext.h> -# if defined(UODBC_UNIQUE_NAMES) -# define UODBC_TYPE wodbc -# define UODBC_NAME "wodbc" -# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(wodbc_##name, php3_wodbc_##name, arg_types) -# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(wodbc_##php_name, php3_wodbc_##name, arg_types) -# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_wodbc_##name) -# define UODBC_FNAME(name) php3i_wodbc_##name -# define ODBC_INI_VAR_NAME(name) #name -# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(wuodbc.##a) -# define UODBC_VAR_NAME(name) name -# define UODBC_VAR(a) UODBC_VAR_NAME(wodbc_##a) -# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_wuodbc_##a) -# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -# define wodbc_module_ptr &UODBC_MODULE_ENTRY -# endif # endif - -#if !defined(UODBC_UNIQUE_NAMES) -#define UODBC_TYPE odbc -#define UODBC_NAME "odbc" -#define UODBC_FE(name, arg_types) UODBC_NAMED_FE(odbc_##name, php3_odbc_##name, arg_types) -#define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(odbc_##php_name, php3_odbc_##name, arg_types) -#define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_odbc_##name) -#define UODBC_FNAME(name) php3i_odbc_##name -#define ODBC_INI_VAR_NAME(name) #name -#define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(uodbc.##a) -#define UODBC_VAR_NAME(name) name -#define UODBC_VAR(a) UODBC_VAR_NAME(uodbc_##a) -#define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_uodbc_##a) -#define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) -#define uodbc_module_ptr &UODBC_MODULE_ENTRY -#else -#define UODBC_ALIAS(name, arg_types) UODBC_NAMED_FE(odbc_##name, php3_odbc_##name, arg_types) -#define UODBC_ALIAS_FE(php_name, name, arg_types) UODBC_NAMED_FE(odbc_##php_name, php3_odbc_##name, arg_types) -#endif - - - -/* -* -* Defines for ODBC -* -*/ - -/* win32 vars for thread local storage */ -#define UODBC_MUTEX UODBC_VAR(mutex) -#define UODBC_TLS UODBC_VAR(Tls) -#define UODBC_GLOBAL_STRUCT UODBC_VAR(global_struct) -#define UODBC_GLOBALS UODBC_VAR(globals) -/* defines for variables, structs, etc */ -#define UODBC_MODULE_NAME "ODBC" -#define UODBC_FUNCTIONS UODBC_VAR(functions) -#define UODBC_CONNECTION UODBC_VAR(connection) -#define UODBC_RESULT_VALUE UODBC_VAR(result_value) -#define UODBC_RESULT UODBC_VAR(result) -#define UODBC_MODULE UODBC_VAR(module) -#define UODBC_MODULE_PTR UODBC_VAR(module_ptr) -#define PHP3_UODBC_MODULE PHP3_UODBC_VAR(module) - -/* function defines */ -#define PHP3_MINIT_UODBC UODBC_FNAME(minit) -#define PHP3_MSHUTDOWN_UODBC UODBC_FNAME(mshutdown) -#define PHP3_RINIT_UODBC UODBC_FNAME(rinit) -#define PHP3_INFO_UODBC UODBC_FNAME(info) - -/* internal function defines */ -#define UODBC_ADD_RESULT UODBC_FNAME(add_result) -#define UODBC_GET_RESULT UODBC_FNAME(get_result) -#define UODBC_DEL_RESULT UODBC_FNAME(del_result) -#define UODBC_ADD_CONN UODBC_FNAME(add_conn) -#define UODBC_GET_CONN UODBC_FNAME(get_conn) -#define UODBC_DEL_CONN UODBC_FNAME(del_conn) -#define UODBC_SQL_ERROR UODBC_FNAME(sql_error) -#define UODBC_BINDCOLS UODBC_FNAME(bindcols) -#define PHP3_UODBC_DO_CONNECT UODBC_FNAME(_do_connect) -#define PHP3_UODBC_TRANSACT UODBC_FNAME(_do_transact) - -# ifndef MSVC5 -# define FAR -# endif - -extern php3_module_entry UODBC_MODULE_ENTRY; - -/* uODBC functions */ -extern int PHP3_MINIT_UODBC(INIT_FUNC_ARGS); -extern int PHP3_MSHUTDOWN_UODBC(void); -extern int PHP3_RINIT_UODBC(INIT_FUNC_ARGS); -extern void PHP3_INFO_UODBC(void); -extern UODBC_FUNCTION(setoption); -extern UODBC_FUNCTION(autocommit); -extern UODBC_FUNCTION(close); -extern UODBC_FUNCTION(close_all); -extern UODBC_FUNCTION(commit); -extern UODBC_FUNCTION(connect); -extern UODBC_FUNCTION(pconnect); -extern void PHP3_UODBC_DO_CONNECT(INTERNAL_FUNCTION_PARAMETERS, int); -extern UODBC_FUNCTION(cursor); -extern UODBC_FUNCTION(exec); -/*extern UODBC_FUNCTION(do);*/ -extern UODBC_FUNCTION(execute); -extern UODBC_FUNCTION(fetch_into); -extern UODBC_FUNCTION(fetch_row); -extern UODBC_FUNCTION(field_len); -extern UODBC_FUNCTION(field_name); -extern UODBC_FUNCTION(field_type); -extern UODBC_FUNCTION(field_num); -extern UODBC_FUNCTION(free_result); -extern UODBC_FUNCTION(num_fields); -extern UODBC_FUNCTION(num_rows); -extern UODBC_FUNCTION(prepare); -extern UODBC_FUNCTION(result); -extern UODBC_FUNCTION(result_all); -extern UODBC_FUNCTION(rollback); -extern void PHP3_UODBC_TRANSACT(INTERNAL_FUNCTION_PARAMETERS, int); -extern UODBC_FUNCTION(binmode); -extern UODBC_FUNCTION(longreadlen); - -typedef struct UODBC_CONNECTION { +extern php3_module_entry odbc_module_entry; +# define odbc_module_ptr &odbc_module_entry + + +/* user functions */ +extern int php3_minit_odbc(INIT_FUNC_ARGS); +extern int php3_mshutdown_odbc(SHUTDOWN_FUNC_ARGS); +extern int php3_rinit_odbc(INIT_FUNC_ARGS); +extern void php3_info_odbc(void); +extern PHP_FUNCTION(odbc_setoption); +extern PHP_FUNCTION(odbc_autocommit); +extern PHP_FUNCTION(odbc_close); +extern PHP_FUNCTION(odbc_close_all); +extern PHP_FUNCTION(odbc_commit); +extern PHP_FUNCTION(odbc_connect); +extern PHP_FUNCTION(odbc_pconnect); +extern void php3_odbc_do_connect(INTERNAL_FUNCTION_PARAMETERS, int); +extern PHP_FUNCTION(odbc_cursor); +extern PHP_FUNCTION(odbc_exec); +extern PHP_FUNCTION(odbc_do); +extern PHP_FUNCTION(odbc_execute); +extern PHP_FUNCTION(odbc_fetch_into); +extern PHP_FUNCTION(odbc_fetch_row); +extern PHP_FUNCTION(odbc_field_len); +extern PHP_FUNCTION(odbc_field_name); +extern PHP_FUNCTION(odbc_field_type); +extern PHP_FUNCTION(odbc_field_num); +extern PHP_FUNCTION(odbc_free_result); +extern PHP_FUNCTION(odbc_num_fields); +extern PHP_FUNCTION(odbc_num_rows); +extern PHP_FUNCTION(odbc_prepare); +extern PHP_FUNCTION(odbc_result); +extern PHP_FUNCTION(odbc_result_all); +extern PHP_FUNCTION(odbc_rollback); +extern void php3_odbc_transact(INTERNAL_FUNCTION_PARAMETERS, int); +extern PHP_FUNCTION(odbc_binmode); +extern PHP_FUNCTION(odbc_longreadlen); + +typedef struct odbc_connection { #if HAVE_DB2 SQLHANDLE hdbc; #else HDBC hdbc; #endif int open; -} UODBC_CONNECTION; +} odbc_connection; -typedef struct UODBC_RESULT_VALUE { +typedef struct odbc_result_value { char name[32]; char *value; long int vallen; SDWORD coltype; -} UODBC_RESULT_VALUE; +} odbc_result_value; -typedef struct UODBC_RESULT { +typedef struct odbc_result { #if HAVE_DB2 SQLHANDLE stmt; #else HSTMT stmt; #endif - UODBC_RESULT_VALUE *values; + odbc_result_value *values; SWORD numcols; SWORD numparams; # if HAVE_SQL_EXTENDED_FETCH @@ -669,8 +181,8 @@ typedef struct UODBC_RESULT { long longreadlen; int binmode; int fetched; - UODBC_CONNECTION *conn_ptr; -} UODBC_RESULT; + odbc_connection *conn_ptr; +} odbc_result; typedef struct { #if HAVE_DB2 @@ -692,34 +204,54 @@ typedef struct { long defaultbinmode; HashTable *resource_list; HashTable *resource_plist; -} UODBC_MODULE; +} php_odbc_globals; -# ifndef THREAD_SAFE -extern UODBC_MODULE PHP3_UODBC_MODULE; +# ifndef ZTS +extern php_odbc_globals odbc_globals; # endif -int UODBC_ADD_RESULT(HashTable *list, UODBC_RESULT *result); -UODBC_RESULT *UODBC_GET_RESULT(HashTable *list, int count); -void UODBC_DEL_RESULT(HashTable *list, int count); -int UODBC_ADD_CONN(HashTable *list, HDBC conn); -UODBC_CONNECTION *UODBC_GET_CONN(HashTable *list, int count); -void UODBC_DEL_CONN(HashTable *list, int ind); +int odbc_add_result(HashTable *list, odbc_result *result); +odbc_result *odbc_get_result(HashTable *list, int count); +void odbc_del_result(HashTable *list, int count); +int odbc_add_conn(HashTable *list, HDBC conn); +odbc_connection *odbc_get_conn(HashTable *list, int count); +void odbc_del_conn(HashTable *list, int ind); #if HAVE_DB2 -void UODBC_SQL_ERROR(SQLHANDLE conn, SQLHANDLE stmt, char *func); +void odbc_sql_error(SQLHANDLE conn, SQLHANDLE stmt, char *func); #else -void UODBC_SQL_ERROR(HDBC conn, HSTMT stmt, char *func); +void odbc_sql_error(HDBC conn, HSTMT stmt, char *func); #endif -int UODBC_BINDCOLS(UODBC_RESULT *result); +int odbc_bindcols(odbc_result *result); #define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR) #define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY) +#ifdef ZTS +# define ODBCLS_D php_odbc_globals *odbc_globals +# define ODBCLS_DC , ODBCLS_D +# define ODBCLS_C odbc_globals +# define ODBCLS_CC , ODBCLS_C +# define ODBCG(v) (odbc_globals->v) +# define ODBCLS_FETCH() php_odbc_globals *odbc_globals = ts_resource(odbc_globals_id) +# define ODBC_TLS_VARS char *globals; ODBCLS_FETCH(); globals = (char *)odbc_globals; #else -# define uodbc_module_ptr NULL +# define ODBCLS_D +# define ODBCLS_DC +# define ODBCLS_C +# define ODBCLS_CC +# define ODBCG(v) (odbc_globals.v) +# define ODBCLS_FETCH() +# define ODBC_TLS_VARS char *globals = (char *)&odbc_globals +extern ZEND_API php_odbc_globals odbc_globals; +#endif + +#else + +# define odbc_module_ptr NULL -#endif /* HAVE_UODBC || HAVE_DB2 */ +#endif /* HAVE_UODBC */ -#endif /* _UNIFIED_ODBC_H */ +#endif /* _PHP_ODBC_H */ /* * Local variables: |
