[prev in list] [next in list] [prev in thread] [next in thread]
List: php-internals
Subject: [PHP-DEV] CVS update: php31/ext/odbc
From: shane <php-dev () lists ! php ! net>
Date: 1998-10-29 6:05:00
[Download RAW message or body]
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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic