CVS update: php31/ext/odbc

From: Date: Thu, 29 Oct 1998 06:05:00 +0000
Subject: CVS update: php31/ext/odbc
Groups: php.dev 
Request: Send a blank email to php-dev+get-2077@lists.php.net to get a copy of this message
Date: Thursday October 29, 1998 @ 1:05 Author: shane Update of /repository/php31/ext/odbc In directory asf:/u2/tmp/cvs-serv26904/ext/odbc Modified Files: php3_unified_odbc.h unified_odbc.c Log Message: various patches. including odbc mega patch. Index: php31/ext/odbc/php3_unified_odbc.h diff -c php31/ext/odbc/php3_unified_odbc.h:2.3 php31/ext/odbc/php3_unified_odbc.h:2.4 *** php31/ext/odbc/php3_unified_odbc.h:2.3 Sat Oct 17 17:19:14 1998 --- php31/ext/odbc/php3_unified_odbc.h Thu Oct 29 01:04:54 1998 *************** *** 28,356 **** +----------------------------------------------------------------------+ */ ! /* $Id: php3_unified_odbc.h,v 2.3 1998/10/17 21:19:14 shane Exp $ */ #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 --- 28,52 ---- +----------------------------------------------------------------------+ */ ! /* $Id: php3_unified_odbc.h,v 2.4 1998/10/29 06:04:54 shane Exp $ */ #ifndef _UNIFIED_ODBC_H #define _UNIFIED_ODBC_H #if HAVE_UODBC + /* ODBC_UNIQUE_NAMES should be defined in config.h if you are + * compiling more than one of any of the uodbc databases + * this will give each module unique function names + * to avoid clashes between modules. + */ + /*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*/ ! #define UODBC_NAMED_FE(php_name, name, arg_types) { #php_name, name, arg_types } ! #define UODBC_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS) /* checking in the same order as in configure.in */ # if HAVE_SOLID *************** *** 358,364 **** # include <cli0ext1.h> # define HAVE_SQL_EXTENDED_FETCH 0 extern void php3_solid_fetch_prev(INTERNAL_FUNCTION_PARAMETERS); ! # elif HAVE_IODBC && !MSVC5 # include <isql.h> # include <isqlext.h> # include <odbc_types.h> --- 54,70 ---- # 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_FE(name, arg_types) UODBC_NAMED_FE(uodbc_##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) ! # endif ! ! ! # elif HAVE_IODBC && !(WIN32|WINNT) # include <isql.h> # include <isqlext.h> # include <odbc_types.h> *************** *** 370,375 **** --- 76,89 ---- # 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_FE(name, arg_types) UODBC_NAMED_FE(uodbc_##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) + # endif #elif HAVE_OPENLINK *************** *** 378,383 **** --- 92,105 ---- # include <isqlext.h> # include <udbcext.h> # define HAVE_SQL_EXTENDED_FETCH 1 + # if defined(UODBC_UNIQUE_NAMES) + # define UODBC_TYPE opnlnk + # define UODBC_FE(name, arg_types) UODBC_NAMED_FE(uodbc_##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) + # endif #elif HAVE_VELOCIS /* Nothing ??? */ *************** *** 385,407 **** # define HAVE_SQL_EXTENDED_FETCH 1 # include <sql.h> # include <sqlext.h> #elif HAVE_CODBC # define HAVE_SQL_EXTENDED_FETCH 1 # include <odbc.h> ! # else # define HAVE_SQL_EXTENDED_FETCH 1 # include <WINDOWS.H> # include <sql.h> # include <sqlext.h> # endif # ifndef MSVC5 # define FAR # endif extern php3_module_entry UODBC_MODULE_ENTRY; # define uodbc_module_ptr &UODBC_MODULE_ENTRY /* uODBC functions */ --- 107,209 ---- # define HAVE_SQL_EXTENDED_FETCH 1 # include <sql.h> # include <sqlext.h> + # if defined(UODBC_UNIQUE_NAMES) + # define UODBC_TYPE velocis + # define UODBC_FE(name, arg_types) UODBC_NAMED_FE(uodbc_##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) + # endif #elif HAVE_CODBC # define HAVE_SQL_EXTENDED_FETCH 1 # include <odbc.h> + # if defined(UODBC_UNIQUE_NAMES) + # define UODBC_TYPE codbc + # define UODBC_FE(name, arg_types) UODBC_NAMED_FE(uodbc_##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) + # 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 odbc + # define UODBC_FE(name, arg_types) UODBC_NAMED_FE(odbc_##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) + # endif # endif + + #if !defined(UODBC_UNIQUE_NAMES) + #define UODBC_TYPE odbc + #define UODBC_FE(name, arg_types) UODBC_NAMED_FE(odbc_##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) + #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 (UODBC_TYPE)" + #define UODBC_FUNCTIONS UODBC_VAR(functions) + #define UODBC_MODULE_ENTRY UODBC_VAR(module_entry) + #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; + /* FIXME 3.1. have to do something with this define */ # define uodbc_module_ptr &UODBC_MODULE_ENTRY /* uODBC functions */ *************** *** 409,441 **** extern int PHP3_MSHUTDOWN_UODBC(void); extern int PHP3_RINIT_UODBC(INIT_FUNC_ARGS); extern void PHP3_INFO_UODBC(void); ! extern void PHP3_UODBC_SETOPTION(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_AUTOCOMMIT(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_CLOSE(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UDOBC_CLOSE_ALL(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_COMMIT(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_CONNECT(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_PCONNECT(INTERNAL_FUNCTION_PARAMETERS); extern void PHP3_UODBC_DO_CONNECT(INTERNAL_FUNCTION_PARAMETERS, int); ! extern void PHP3_UODBC_CURSOR(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_DO(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_EXECUTE(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_FETCH_INTO(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_FETCH_ROW(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_FIELD_LEN(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_FIELD_NAME(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_FIELD_TYPE(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_FIELD_NUM(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_FREE_RESULT(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_NUM_FIELDS(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_NUM_ROWS(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_PREPARE(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_RESULT(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_RESULT_ALL(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_ROLLBACK(INTERNAL_FUNCTION_PARAMETERS); extern void PHP3_UODBC_TRANSACT(INTERNAL_FUNCTION_PARAMETERS, int); ! extern void PHP3_UODBC_BINMODE(INTERNAL_FUNCTION_PARAMETERS); ! extern void PHP3_UODBC_LONGREADLEN(INTERNAL_FUNCTION_PARAMETERS); typedef struct UODBC_CONNECTION { HDBC hdbc; --- 211,244 ---- 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 { HDBC hdbc; *************** *** 495,502 **** 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 --- 298,304 ---- 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 Index: php31/ext/odbc/unified_odbc.c diff -c php31/ext/odbc/unified_odbc.c:2.16 php31/ext/odbc/unified_odbc.c:2.17 *** php31/ext/odbc/unified_odbc.c:2.16 Sat Oct 17 16:45:37 1998 --- php31/ext/odbc/unified_odbc.c Thu Oct 29 01:04:58 1998 *************** *** 69,76 **** #define UODBC_GLOBAL(a) UODBC_GLOBALS->a ! #define UODBC_TLS_VARS \ ! UODBC_GLOBAL_STRUCT *UODBC_GLOBALS = TlsGetValue(UODBC_TLS); #else UODBC_MODULE PHP3_UODBC_MODULE; --- 69,75 ---- #define UODBC_GLOBAL(a) UODBC_GLOBALS->a ! #define UODBC_TLS_VARS UODBC_GLOBAL_STRUCT *UODBC_GLOBALS = TlsGetValue(UODBC_TLS); #else UODBC_MODULE PHP3_UODBC_MODULE; *************** *** 79,114 **** #endif function_entry UODBC_FUNCTIONS[] = { ! {ODBC_SETOPTION, PHP3_UODBC_SETOPTION, NULL}, ! {ODBC_AUTOCOMMIT, PHP3_UODBC_AUTOCOMMIT, NULL}, ! {ODBC_CLOSE, PHP3_UODBC_CLOSE, NULL}, ! {ODBC_CLOSE_ALL, PHP3_UDOBC_CLOSE_ALL, NULL}, ! {ODBC_COMMIT, PHP3_UODBC_COMMIT, NULL}, ! {ODBC_CONNECT, PHP3_UODBC_CONNECT, NULL}, ! {ODBC_PCONNECT, PHP3_UODBC_PCONNECT, NULL}, ! {ODBC_CURSOR, PHP3_UODBC_CURSOR, NULL}, ! {ODBC_DO, PHP3_UODBC_DO, NULL}, ! {ODBC_EXEC, PHP3_UODBC_DO, NULL}, ! {ODBC_PREPARE, PHP3_UODBC_PREPARE, NULL}, ! {ODBC_EXECUTE, PHP3_UODBC_EXECUTE, NULL}, ! {ODBC_FETCH_ROW, PHP3_UODBC_FETCH_ROW, NULL}, ! {ODBC_FETCH_INTO, PHP3_UODBC_FETCH_INTO, NULL}, ! {ODBC_FIELD_LEN, PHP3_UODBC_FIELD_LEN, NULL}, ! {ODBC_FIELD_NAME, PHP3_UODBC_FIELD_NAME, NULL}, ! {ODBC_FIELD_TYPE, PHP3_UODBC_FIELD_TYPE, NULL}, ! {ODBC_FIELD_NUM, PHP3_UODBC_FIELD_NUM, NULL}, ! {ODBC_FREE_RESULT, PHP3_UODBC_FREE_RESULT, NULL}, ! {ODBC_NUM_FIELDS, PHP3_UODBC_NUM_FIELDS, NULL}, ! {ODBC_NUM_ROWS, PHP3_UODBC_NUM_ROWS, NULL}, ! {ODBC_RESULT, PHP3_UODBC_RESULT, NULL}, ! {ODBC_RESULT_ALL, PHP3_UODBC_RESULT_ALL, NULL}, ! {ODBC_ROLLBACK, PHP3_UODBC_ROLLBACK, NULL}, ! {ODBC_BINMODE, PHP3_UODBC_BINMODE, NULL}, ! {ODBC_LONGREADLEN, PHP3_UODBC_LONGREADLEN, NULL}, #if HAVE_SOLID {"solid_fetch_prev",php3_solid_fetch_prev, NULL}, #endif ! #if HAVE_IODBC /* for backwards compatibility with the older odbc module*/ {"sqlconnect", php3_uodbc_connect, NULL}, {"sqldisconnect", php3_uodbc_close, NULL}, --- 78,113 ---- #endif function_entry UODBC_FUNCTIONS[] = { ! UODBC_FE(setoption, NULL), ! UODBC_FE(autocommit, NULL), ! UODBC_FE(close, NULL), ! UODBC_FE(close_all, NULL), ! UODBC_FE(commit, NULL), ! UODBC_FE(connect, NULL), ! UODBC_FE(pconnect, NULL), ! UODBC_FE(cursor, NULL), ! UODBC_FE(do, NULL), ! UODBC_FE(exec, NULL), ! UODBC_FE(prepare, NULL), ! UODBC_FE(execute, NULL), ! UODBC_FE(fetch_row, NULL), ! UODBC_FE(fetch_into, NULL), ! UODBC_FE(field_len, NULL), ! UODBC_FE(field_name, NULL), ! UODBC_FE(field_type, NULL), ! UODBC_FE(field_num, NULL), ! UODBC_FE(free_result, NULL), ! UODBC_FE(num_fields, NULL), ! UODBC_FE(num_rows, NULL), ! UODBC_FE(result, NULL), ! UODBC_FE(result_all, NULL), ! UODBC_FE(rollback, NULL), ! UODBC_FE(binmode, NULL), ! UODBC_FE(longreadlen, NULL), #if HAVE_SOLID {"solid_fetch_prev",php3_solid_fetch_prev, NULL}, #endif ! #if 0 && HAVE_IODBC /* this won't work with the new system */ /* for backwards compatibility with the older odbc module*/ {"sqlconnect", php3_uodbc_connect, NULL}, {"sqldisconnect", php3_uodbc_close, NULL}, *************** *** 122,129 **** }; php3_module_entry UODBC_MODULE_ENTRY = { ! UODBC_MODULE_NAME, UODBC_FUNCTIONS, PHP3_MINIT_UODBC, PHP3_MSHUTDOWN_UODBC, ! PHP3_RINIT_UODBC, NULL, PHP3_INFO_UODBC, STANDARD_MODULE_PROPERTIES }; --- 121,134 ---- }; php3_module_entry UODBC_MODULE_ENTRY = { ! UODBC_MODULE_NAME, ! UODBC_FUNCTIONS, ! PHP3_MINIT_UODBC, ! PHP3_MSHUTDOWN_UODBC, ! PHP3_RINIT_UODBC, ! NULL, ! PHP3_INFO_UODBC, ! STANDARD_MODULE_PROPERTIES }; *************** *** 134,140 **** #include "php3_list.h" ! static void _FREE_UODBC_RESULT(UODBC_RESULT *res) { int i; --- 139,145 ---- #include "php3_list.h" ! static void _free_result(UODBC_RESULT *res) { int i; *************** *** 173,179 **** return 0; } ! static void _CLOSE_UODBC_CONNECTION(UODBC_CONNECTION *conn) { /* FIXME * Closing a connection will fail if there are --- 178,184 ---- return 0; } ! static void _close_connection(UODBC_CONNECTION *conn) { /* FIXME * Closing a connection will fail if there are *************** *** 191,197 **** } ! static void _CLOSE_UODBC_PCONNECTION(UODBC_CONNECTION *conn) { UODBC_TLS_VARS; --- 196,202 ---- } ! static void _close_pconnection(UODBC_CONNECTION *conn) { UODBC_TLS_VARS; *************** *** 239,261 **** SQLAllocEnv(&UODBC_GLOBAL(PHP3_UODBC_MODULE).henv); #if !PHP_31 ! cfg_get_string(ODBC_INI_DEFAULTDB, &UODBC_GLOBAL(PHP3_UODBC_MODULE).defDB); ! cfg_get_string(ODBC_INI_DEFAULTUSER, &UODBC_GLOBAL(PHP3_UODBC_MODULE).defUser); ! cfg_get_string(ODBC_INI_DEFAULTPW, &UODBC_GLOBAL(PHP3_UODBC_MODULE).defPW); ! if (cfg_get_long(ODBC_INI_ALLOWPERSISTENT, &UODBC_GLOBAL(PHP3_UODBC_MODULE).allow_persistent) == FAILURE) { UODBC_GLOBAL(PHP3_UODBC_MODULE).allow_persistent = -1; } ! if (cfg_get_long(ODBC_INI_MAXPERSISTENT, &UODBC_GLOBAL(PHP3_UODBC_MODULE).max_persistent) == FAILURE) { UODBC_GLOBAL(PHP3_UODBC_MODULE).max_persistent = -1; } ! if (cfg_get_long(ODBC_INI_MAXLINKS, &UODBC_GLOBAL(PHP3_UODBC_MODULE).max_links) == FAILURE) { UODBC_GLOBAL(PHP3_UODBC_MODULE).max_links = -1; --- 244,266 ---- SQLAllocEnv(&UODBC_GLOBAL(PHP3_UODBC_MODULE).henv); #if !PHP_31 ! cfg_get_string(ODBC_INI_VAR(default_db), &UODBC_GLOBAL(PHP3_UODBC_MODULE).defDB); ! cfg_get_string(ODBC_INI_VAR(default_user), &UODBC_GLOBAL(PHP3_UODBC_MODULE).defUser); ! cfg_get_string(ODBC_INI_VAR(default_pw), &UODBC_GLOBAL(PHP3_UODBC_MODULE).defPW); ! if (cfg_get_long(ODBC_INI_VAR(allow_persistent), &UODBC_GLOBAL(PHP3_UODBC_MODULE).allow_persistent) == FAILURE) { UODBC_GLOBAL(PHP3_UODBC_MODULE).allow_persistent = -1; } ! if (cfg_get_long(ODBC_INI_VAR(max_persistent), &UODBC_GLOBAL(PHP3_UODBC_MODULE).max_persistent) == FAILURE) { UODBC_GLOBAL(PHP3_UODBC_MODULE).max_persistent = -1; } ! if (cfg_get_long(ODBC_INI_VAR(max_links), &UODBC_GLOBAL(PHP3_UODBC_MODULE).max_links) == FAILURE) { UODBC_GLOBAL(PHP3_UODBC_MODULE).max_links = -1; *************** *** 269,279 **** UODBC_GLOBAL(PHP3_UODBC_MODULE).num_persistent = 0; UODBC_GLOBAL(PHP3_UODBC_MODULE).le_result = ! register_list_destructors(_FREE_UODBC_RESULT, NULL); UODBC_GLOBAL(PHP3_UODBC_MODULE).le_conn = ! register_list_destructors(_CLOSE_UODBC_CONNECTION, NULL); UODBC_GLOBAL(PHP3_UODBC_MODULE).le_pconn = ! register_list_destructors(NULL, _CLOSE_UODBC_PCONNECTION); #ifdef SQLANY_BUG /* Make a dumb connection to avoid crash on SQLFreeEnv(), --- 274,284 ---- UODBC_GLOBAL(PHP3_UODBC_MODULE).num_persistent = 0; UODBC_GLOBAL(PHP3_UODBC_MODULE).le_result = ! register_list_destructors(_free_result, NULL); UODBC_GLOBAL(PHP3_UODBC_MODULE).le_conn = ! register_list_destructors(_close_connection, NULL); UODBC_GLOBAL(PHP3_UODBC_MODULE).le_pconn = ! register_list_destructors(NULL, _close_pconnection); #ifdef SQLANY_BUG /* Make a dumb connection to avoid crash on SQLFreeEnv(), *************** *** 312,322 **** UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultlrl = 4096; UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultbinmode = 1; #else ! if (cfg_get_long(ODBC_INI_DEFAULTLRL, &UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultlrl) == FAILURE){ UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultlrl = 4096; } ! if (cfg_get_long(ODBC_INI_DEFAULTBINMODE, &UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultbinmode) == FAILURE){ UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultbinmode = 1; } #endif --- 317,327 ---- UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultlrl = 4096; UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultbinmode = 1; #else ! if (cfg_get_long(ODBC_INI_VAR(defaultlrl), &UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultlrl) == FAILURE){ UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultlrl = 4096; } ! if (cfg_get_long(ODBC_INI_VAR(defaultbinmode), &UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultbinmode) == FAILURE){ UODBC_GLOBAL(PHP3_UODBC_MODULE).defaultbinmode = 1; } #endif *************** *** 346,354 **** void PHP3_INFO_UODBC(void) { ! #if !defined(COMPILE_DL) && defined(THREAD_SAFE) ! TLS_VARS; ! #endif #if HAVE_SOLID PUTS("Unified ODBC Support active (compiled with Solid)"); #elif HAVE_ADABAS --- 351,358 ---- void PHP3_INFO_UODBC(void) { ! UODBC_TLS_VARS; ! #if HAVE_SOLID PUTS("Unified ODBC Support active (compiled with Solid)"); #elif HAVE_ADABAS *************** *** 362,368 **** #else PUTS("Unified ODBC Support active (compiled with unknown library)"); #endif ! } /* --- 366,384 ---- #else PUTS("Unified ODBC Support active (compiled with unknown library)"); #endif ! PUTS("<BR>"); ! #if DEBUG ! php3_printf("default_db: %s<br>\n",UODBC_GLOBAL(PHP3_UODBC_MODULE).defDB); ! php3_printf("default_user: %s<br>\n",UODBC_GLOBAL(PHP3_UODBC_MODULE).defUser); ! php3_printf("default_pw: %s<br>\n",UODBC_GLOBAL(PHP3_UODBC_MODULE).defPW); ! #endif ! php3_printf("allow_persistent: %d<br>\n",UODBC_GLOBAL(PHP3_UODBC_MODULE).allow_persistent); ! php3_printf("max_persistent: %d<br>\n",UODBC_GLOBAL(PHP3_UODBC_MODULE).max_persistent); ! php3_printf("max_links: %d<br>\n",UODBC_GLOBAL(PHP3_UODBC_MODULE).max_links); ! } ! ! ! /* *************** *** 473,479 **** /* Main User Functions */ ! void PHP3_UDOBC_CLOSE_ALL(INTERNAL_FUNCTION_PARAMETERS) { void *ptr; int type; --- 489,495 ---- /* Main User Functions */ ! UODBC_FUNCTION(close_all) { void *ptr; int type; *************** *** 505,511 **** res_ind = arg1->value.lval; if (res_ind){ ! if ((result = uodbc_get_result(list, res_ind)) == NULL){ RETURN_FALSE; } if (mode) --- 521,527 ---- res_ind = arg1->value.lval; if (res_ind){ ! if ((result = UODBC_GET_RESULT(list, res_ind)) == NULL){ RETURN_FALSE; } if (mode) *************** *** 522,533 **** RETURN_TRUE } ! void PHP3_UODBC_BINMODE(INTERNAL_FUNCTION_PARAMETERS) { php3_uodbc_fetch_attribs(INTERNAL_FUNCTION_PARAM_PASSTHRU,0); } ! void PHP3_UODBC_LONGREADLEN(INTERNAL_FUNCTION_PARAMETERS) { php3_uodbc_fetch_attribs(INTERNAL_FUNCTION_PARAM_PASSTHRU,1); } --- 538,549 ---- RETURN_TRUE } ! UODBC_FUNCTION(binmode) { php3_uodbc_fetch_attribs(INTERNAL_FUNCTION_PARAM_PASSTHRU,0); } ! UODBC_FUNCTION(longreadlen) { php3_uodbc_fetch_attribs(INTERNAL_FUNCTION_PARAM_PASSTHRU,1); } *************** *** 591,597 **** return 1; } ! void PHP3_UODBC_PREPARE(INTERNAL_FUNCTION_PARAMETERS) { pval *arg1, *arg2; int conn; --- 607,613 ---- return 1; } ! UODBC_FUNCTION(prepare) { pval *arg1, *arg2; int conn; *************** *** 663,669 **** * Execute prepared SQL statement. Supports only input parameters. */ ! void PHP3_UODBC_EXECUTE(INTERNAL_FUNCTION_PARAMETERS) { pval *arg1, *arg2, arr, *tmp; typedef struct params_t { --- 679,685 ---- * Execute prepared SQL statement. Supports only input parameters. */ ! extern UODBC_FUNCTION(execute) { pval *arg1, *arg2, arr, *tmp; typedef struct params_t { *************** *** 786,792 **** rc = SQLFreeStmt(result->stmt, SQL_CLOSE); if (rc == SQL_ERROR){ ! uodbc_sql_error(result->conn_ptr->hdbc, result->stmt, "SQLFreeStmt"); } rc = SQLExecute(result->stmt); --- 802,808 ---- rc = SQLFreeStmt(result->stmt, SQL_CLOSE); if (rc == SQL_ERROR){ ! UODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, "SQLFreeStmt"); } rc = SQLExecute(result->stmt); *************** *** 829,835 **** * Adabas automagically generates cursor names, other drivers may not */ ! void PHP3_UODBC_CURSOR(INTERNAL_FUNCTION_PARAMETERS) { pval *arg1; int res_ind; --- 845,851 ---- * Adabas automagically generates cursor names, other drivers may not */ ! UODBC_FUNCTION(cursor) { pval *arg1; int res_ind; *************** *** 892,899 **** RETVAL_FALSE; } } ! void PHP3_UODBC_DO(INTERNAL_FUNCTION_PARAMETERS) { pval *arg1, *arg2; int conn; --- 908,920 ---- RETVAL_FALSE; } } + + UODBC_FUNCTION(do) + { + UODBC_FUNCTION(exec); + } ! UODBC_FUNCTION(exec) { pval *arg1, *arg2; int conn; *************** *** 989,995 **** RETURN_LONG(UODBC_ADD_RESULT(list, result)); } ! void PHP3_UODBC_FETCH_INTO(INTERNAL_FUNCTION_PARAMETERS) { int res_ind, numArgs, i; UODBC_RESULT *result; --- 1010,1016 ---- RETURN_LONG(UODBC_ADD_RESULT(list, result)); } ! UODBC_FUNCTION(fetch_into) { int res_ind, numArgs, i; UODBC_RESULT *result; *************** *** 1105,1111 **** buf, result->longreadlen + 1, &result->values[i].vallen); if (rc == SQL_ERROR) { ! uodbc_sql_error(result->conn_ptr->hdbc, result->stmt, "SQLGetData"); efree(buf); RETURN_FALSE; } --- 1126,1132 ---- buf, result->longreadlen + 1, &result->values[i].vallen); if (rc == SQL_ERROR) { ! UODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, "SQLGetData"); efree(buf); RETURN_FALSE; } *************** *** 1170,1176 **** } #endif ! void PHP3_UODBC_FETCH_ROW(INTERNAL_FUNCTION_PARAMETERS) { int res_ind, numArgs; SDWORD rownum = 1; --- 1191,1197 ---- } #endif ! UODBC_FUNCTION(fetch_row) { int res_ind, numArgs; SDWORD rownum = 1; *************** *** 1229,1235 **** RETURN_TRUE; } ! void PHP3_UODBC_RESULT(INTERNAL_FUNCTION_PARAMETERS) { char *field; int res_ind; --- 1250,1256 ---- RETURN_TRUE; } ! UODBC_FUNCTION(result) { char *field; int res_ind; *************** *** 1344,1350 **** field, fieldsize, &result->values[field_ind].vallen); if (rc == SQL_ERROR) { ! uodbc_sql_error(result->conn_ptr->hdbc, result->stmt, "SQLGetData"); efree(field); RETURN_FALSE; } --- 1365,1371 ---- field, fieldsize, &result->values[field_ind].vallen); if (rc == SQL_ERROR) { ! UODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, "SQLGetData"); efree(field); RETURN_FALSE; } *************** *** 1391,1397 **** field, fieldsize, &result->values[field_ind].vallen); if (rc == SQL_ERROR) { ! uodbc_sql_error(result->conn_ptr->hdbc, result->stmt, "SQLGetData"); efree(field); RETURN_FALSE; } --- 1412,1418 ---- field, fieldsize, &result->values[field_ind].vallen); if (rc == SQL_ERROR) { ! UODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, "SQLGetData"); efree(field); RETURN_FALSE; } *************** *** 1412,1418 **** RETURN_TRUE; } ! void PHP3_UODBC_RESULT_ALL(INTERNAL_FUNCTION_PARAMETERS) { char *buf = NULL; int res_ind, numArgs; --- 1433,1439 ---- RETURN_TRUE; } ! UODBC_FUNCTION(result_all) { char *buf = NULL; int res_ind, numArgs; *************** *** 1504,1510 **** php3_printf("<td>"); if (rc == SQL_ERROR) { ! uodbc_sql_error(result->conn_ptr->hdbc, result->stmt, "SQLGetData"); php3_printf("</td></tr></table>"); efree(buf); RETURN_FALSE; --- 1525,1531 ---- php3_printf("<td>"); if (rc == SQL_ERROR) { ! UODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, "SQLGetData"); php3_printf("</td></tr></table>"); efree(buf); RETURN_FALSE; *************** *** 1542,1548 **** RETURN_LONG(result->fetched); } ! void PHP3_UODBC_FREE_RESULT(INTERNAL_FUNCTION_PARAMETERS) { pval *arg1; --- 1563,1569 ---- RETURN_LONG(result->fetched); } ! UODBC_FUNCTION(free_result) { pval *arg1; *************** *** 1554,1565 **** RETURN_TRUE; } ! void PHP3_UODBC_CONNECT(INTERNAL_FUNCTION_PARAMETERS) { PHP3_UODBC_DO_CONNECT(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } ! void PHP3_UODBC_PCONNECT(INTERNAL_FUNCTION_PARAMETERS) { PHP3_UODBC_DO_CONNECT(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); } --- 1575,1586 ---- RETURN_TRUE; } ! UODBC_FUNCTION(connect) { PHP3_UODBC_DO_CONNECT(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } ! UODBC_FUNCTION(pconnect) { PHP3_UODBC_DO_CONNECT(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); } *************** *** 1767,1773 **** return_value->type = IS_LONG; } ! void PHP3_UODBC_CLOSE(INTERNAL_FUNCTION_PARAMETERS) { pval *arg1; HDBC conn; --- 1788,1794 ---- return_value->type = IS_LONG; } ! UODBC_FUNCTION(close) { pval *arg1; HDBC conn; *************** *** 1788,1794 **** php3_list_delete(ind); } ! void PHP3_UODBC_NUM_ROWS(INTERNAL_FUNCTION_PARAMETERS) { UODBC_RESULT *result; SDWORD rows; --- 1809,1815 ---- php3_list_delete(ind); } ! UODBC_FUNCTION(num_rows) { UODBC_RESULT *result; SDWORD rows; *************** *** 1808,1814 **** RETURN_LONG(rows); } ! void PHP3_UODBC_NUM_FIELDS(INTERNAL_FUNCTION_PARAMETERS) { UODBC_RESULT *result; pval *arg1; --- 1829,1835 ---- RETURN_LONG(rows); } ! UODBC_FUNCTION(num_fields) { UODBC_RESULT *result; pval *arg1; *************** *** 1825,1831 **** RETURN_LONG(result->numcols); } ! void PHP3_UODBC_FIELD_NAME(INTERNAL_FUNCTION_PARAMETERS) { UODBC_RESULT *result; pval *arg1, *arg2; --- 1846,1852 ---- RETURN_LONG(result->numcols); } ! UODBC_FUNCTION(field_name) { UODBC_RESULT *result; pval *arg1, *arg2; *************** *** 1859,1865 **** RETURN_STRING(result->values[arg2->value.lval - 1].name,1) } ! void PHP3_UODBC_FIELD_TYPE(INTERNAL_FUNCTION_PARAMETERS) { UODBC_RESULT *result; char tmp[32]; --- 1880,1886 ---- RETURN_STRING(result->values[arg2->value.lval - 1].name,1) } ! UODBC_FUNCTION(field_type) { UODBC_RESULT *result; char tmp[32]; *************** *** 1892,1898 **** RETURN_STRING(tmp,1) } ! void PHP3_UODBC_FIELD_LEN(INTERNAL_FUNCTION_PARAMETERS) { UODBC_RESULT *result; SDWORD len; --- 1913,1919 ---- RETURN_STRING(tmp,1) } ! UODBC_FUNCTION(field_len) { UODBC_RESULT *result; SDWORD len; *************** *** 1924,1930 **** RETURN_LONG(len); } ! void PHP3_UODBC_FIELD_NUM(INTERNAL_FUNCTION_PARAMETERS) { int field_ind; char *fname; --- 1945,1951 ---- RETURN_LONG(len); } ! UODBC_FUNCTION(field_num) { int field_ind; char *fname; *************** *** 1958,1964 **** RETURN_LONG(field_ind); } ! void PHP3_UODBC_AUTOCOMMIT(INTERNAL_FUNCTION_PARAMETERS) { UODBC_CONNECTION *curr_conn; RETCODE rc; --- 1979,1985 ---- RETURN_LONG(field_ind); } ! UODBC_FUNCTION(autocommit) { UODBC_CONNECTION *curr_conn; RETCODE rc; *************** *** 2034,2051 **** RETURN_TRUE; } ! void PHP3_UODBC_COMMIT(INTERNAL_FUNCTION_PARAMETERS) { PHP3_UODBC_TRANSACT(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); } ! void PHP3_UODBC_ROLLBACK(INTERNAL_FUNCTION_PARAMETERS) { PHP3_UODBC_TRANSACT(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } ! void PHP3_UODBC_SETOPTION(INTERNAL_FUNCTION_PARAMETERS) { UODBC_CONNECTION *curr_conn; UODBC_RESULT *result; --- 2055,2072 ---- RETURN_TRUE; } ! UODBC_FUNCTION(commit) { PHP3_UODBC_TRANSACT(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); } ! UODBC_FUNCTION(rollback) { PHP3_UODBC_TRANSACT(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } ! UODBC_FUNCTION(setoption) { UODBC_CONNECTION *curr_conn; UODBC_RESULT *result; -- PHP Development Mailing List http://www.php.net/ To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net For help: php-dev-help@lists.php.net

« previous php.dev (#2077) next »