diff options
| author | Stig Bakken <ssb@php.net> | 1999-04-19 15:04:11 +0000 |
|---|---|---|
| committer | Stig Bakken <ssb@php.net> | 1999-04-19 15:04:11 +0000 |
| commit | 7dee737fb448b0ab2d35debd358b3c10f01508a8 (patch) | |
| tree | 9b2bb34e9b65d2d244f19f631e1b5e6629d47b11 /ext/odbc/php3_odbc.h | |
| parent | aac5a431237c60bc14204d5697e81bcfb9395d4d (diff) | |
| download | php-git-7dee737fb448b0ab2d35debd358b3c10f01508a8.tar.gz | |
moved odbc into ext/
Diffstat (limited to 'ext/odbc/php3_odbc.h')
| -rw-r--r-- | ext/odbc/php3_odbc.h | 729 |
1 files changed, 729 insertions, 0 deletions
diff --git a/ext/odbc/php3_odbc.h b/ext/odbc/php3_odbc.h new file mode 100644 index 0000000000..1357553e27 --- /dev/null +++ b/ext/odbc/php3_odbc.h @@ -0,0 +1,729 @@ +/* + +----------------------------------------------------------------------+ + | PHP HTML Embedded Scripting Language Version 3.0 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997,1998 PHP Development Team (See Credits file) | + +----------------------------------------------------------------------+ + | This program is free software; you can redistribute it and/or modify | + | it under the terms of one of the following licenses: | + | | + | A) the GNU General Public License as published by the Free Software | + | Foundation; either version 2 of the License, or (at your option) | + | any later version. | + | | + | B) the PHP License as published by the PHP Development Team and | + | included in the distribution in the file: LICENSE | + | | + | This program is distributed in the hope that it will be useful, | + | but WITHOUT ANY WARRANTY; without even the implied warranty of | + | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | + | GNU General Public License for more details. | + | | + | You should have received a copy of both licenses referred to here. | + | If you did not, or have any questions about PHP licensing, please | + | contact core@php.net. | + +----------------------------------------------------------------------+ + | Authors: Stig Sæther Bakken <ssb@guardian.no> | + | Andreas Karajannis <Andreas.Karajannis@gmd.de> | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#ifndef _UNIFIED_ODBC_H +#define _UNIFIED_ODBC_H + +#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 + + +/* +* +* 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 + +/* 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 +# include <sql.h> +# include <sqlext.h> +# define HAVE_SQL_EXTENDED_FETCH 0 + +#elif HAVE_ADABAS +#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) +# include <isql.h> +# include <isqlext.h> +# include <odbc_types.h> +# include <odbc_funcs.h> +# define HAVE_SQL_EXTENDED_FETCH 1 +# define SQL_FD_FETCH_ABSOLUTE 0x00000010L +# define SQL_CURSOR_DYNAMIC 2UL +# define SQL_NO_TOTAL (-4) +# 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 + +# 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 ??? */ +# 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 +# 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 +# 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 { +#if HAVE_DB2 + SQLHANDLE hdbc; +#else + HDBC hdbc; +#endif + int open; +} UODBC_CONNECTION; + +typedef struct UODBC_RESULT_VALUE { + char name[32]; + char *value; + long int vallen; + SDWORD coltype; +} UODBC_RESULT_VALUE; + +typedef struct UODBC_RESULT { +#if HAVE_DB2 + SQLHANDLE stmt; +#else + HSTMT stmt; +#endif + UODBC_RESULT_VALUE *values; + SWORD numcols; + SWORD numparams; +# if HAVE_SQL_EXTENDED_FETCH + int fetch_abs; +# endif + long longreadlen; + int binmode; + int fetched; + UODBC_CONNECTION *conn_ptr; +} UODBC_RESULT; + +typedef struct { +#if HAVE_DB2 + SQLHANDLE henv; +#else + HENV henv; +#endif + char *defDB; + char *defUser; + char *defPW; + long allow_persistent; + long max_persistent; + long max_links; + long num_persistent; + long num_links; + int defConn; + int le_result, le_conn, le_pconn; + long defaultlrl; + long defaultbinmode; + HashTable *resource_list; + HashTable *resource_plist; +} UODBC_MODULE; + +# ifndef THREAD_SAFE +extern UODBC_MODULE PHP3_UODBC_MODULE; +# 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); +#if HAVE_DB2 +void UODBC_SQL_ERROR(SQLHANDLE conn, SQLHANDLE stmt, char *func); +#else +void UODBC_SQL_ERROR(HDBC conn, HSTMT stmt, char *func); +#endif +int UODBC_BINDCOLS(UODBC_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) + +#else +# define uodbc_module_ptr NULL + +#endif /* HAVE_UODBC || HAVE_DB2 */ + +#endif /* _UNIFIED_ODBC_H */ + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ |
