cvs: php4 /ext/odbc config.m4 php_odbc.c php_odbc.h php_odbc_includes.h

From: Date: Fri, 14 Jun 2002 00:07:21 +0000
Subject: cvs: php4 /ext/odbc config.m4 php_odbc.c php_odbc.h php_odbc_includes.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-12357@lists.php.net to get a copy of this message
sniper Thu Jun 13 20:07:21 2002 EDT Added files: /php4/ext/odbc php_odbc_includes.h Modified files: /php4/ext/odbc config.m4 php_odbc.c php_odbc.h Log: - Fixed bug #15803 (and propably others related too, part 2/2) . Changed the configure/compile so that it doesn't "pollute" the INCLUDES anymore and thus cause trouble with other extensions which might use the same header files. (e.g. Informix) . Separated the #include statements to own file so we don't get any errors when compiling main/internal_functions.c

Index: php4/ext/odbc/config.m4 diff -u php4/ext/odbc/config.m4:1.51 php4/ext/odbc/config.m4:1.52 --- php4/ext/odbc/config.m4:1.51 Tue Mar 12 11:49:55 2002 +++ php4/ext/odbc/config.m4 Thu Jun 13 20:07:13 2002 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.51 2002/03/12 16:49:55 sas Exp $ +dnl $Id: config.m4,v 1.52 2002/06/14 00:07:13 sniper Exp $ dnl dnl @@ -535,7 +535,6 @@ fi if test -n "$ODBC_TYPE"; then - INCLUDES="$INCLUDES $ODBC_INCLUDE" if test "$ODBC_TYPE" != "dbmaker"; then if test "$shared" != "yes"; then EXTRA_LIBS="$EXTRA_LIBS $ODBC_LFLAGS $ODBC_LIBS" @@ -548,5 +547,6 @@ PHP_SUBST_OLD(ODBC_LIBS) PHP_SUBST_OLD(ODBC_LFLAGS) PHP_SUBST_OLD(ODBC_TYPE) - PHP_NEW_EXTENSION(odbc, php_odbc.c, $shared) + + PHP_NEW_EXTENSION(odbc, php_odbc.c, $shared,, $ODBC_INCLUDE) fi Index: php4/ext/odbc/php_odbc.c diff -u php4/ext/odbc/php_odbc.c:1.126 php4/ext/odbc/php_odbc.c:1.127 --- php4/ext/odbc/php_odbc.c:1.126 Tue Apr 30 09:17:48 2002 +++ php4/ext/odbc/php_odbc.c Thu Jun 13 20:07:13 2002 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_odbc.c,v 1.126 2002/04/30 13:17:48 kalowsky Exp $ */ +/* $Id: php_odbc.c,v 1.127 2002/06/14 00:07:13 sniper Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -30,13 +30,12 @@ #include "php_globals.h" #include "ext/standard/info.h" - #include "ext/standard/php_string.h" #include "ext/standard/php_standard.h" #include "php_odbc.h" +#include "php_odbc_includes.h" #include "php_globals.h" - #if HAVE_UODBC Index: php4/ext/odbc/php_odbc.h diff -u php4/ext/odbc/php_odbc.h:1.46 php4/ext/odbc/php_odbc.h:1.47 --- php4/ext/odbc/php_odbc.h:1.46 Mon Mar 11 21:27:03 2002 +++ php4/ext/odbc/php_odbc.h Thu Jun 13 20:07:15 2002 @@ -18,181 +18,21 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_odbc.h,v 1.46 2002/03/12 02:27:03 sniper Exp $ */ +/* $Id: php_odbc.h,v 1.47 2002/06/14 00:07:15 sniper Exp $ */ #ifndef PHP_ODBC_H #define PHP_ODBC_H #if HAVE_UODBC #define ODBCVER 0x0250 -/*#ifndef MSVC5 -#define FAR -#endif -*/ + #ifdef ZTS #include "TSRM.h" #endif -/* checking in the same order as in configure.in */ - -#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35) /* Solid Server */ - -#define ODBC_TYPE "Solid" -#if defined(HAVE_SOLID) -# include <cli0core.h> -# include <cli0ext1.h> -# include <cli0env.h> -#elif defined(HAVE_SOLID_30) -# include <cli0cli.h> -# include <cli0defs.h> -# include <cli0env.h> -#elif defined(HAVE_SOLID_35) -# if !defined(PHP_WIN32) -# include <sqlunix.h> -# endif /* end: #if !defined(PHP_WIN32) */ -# include <sqltypes.h> -# include <sqlucode.h> -# include <sqlext.h> -# include <sql.h> -#endif /* end: #if defined(HAVE_SOLID) */ -#undef HAVE_SQL_EXTENDED_FETCH -PHP_FUNCTION(solid_fetch_prev); -#define SQLSMALLINT SWORD -#define SQLUSMALLINT UWORD -#ifndef SQL_SUCCEEDED -#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) -#endif - -#elif defined(HAVE_EMPRESS) /* Empress */ - -#define ODBC_TYPE "Empress" -#include <sql.h> -#include <sqlext.h> -#undef HAVE_SQL_EXTENDED_FETCH - -#elif defined(HAVE_ADABAS) /* Adabas D */ - -#define ODBC_TYPE "Adabas D" -#include <WINDOWS.H> -#include <sql.h> -#include <sqlext.h> -#define HAVE_SQL_EXTENDED_FETCH 1 -#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) -#define SQLINTEGER ULONG -#define SQLUSMALLINT USHORT - -#elif defined(HAVE_SAPDB) /* SAP DB */ - -#define ODBC_TYPE "SAP DB" -#include <WINDOWS.H> -#include <sql.h> -#include <sqlext.h> -#define HAVE_SQL_EXTENDED_FETCH 1 -#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) - -#elif defined(HAVE_IODBC) /* iODBC library */ - -#define ODBC_TYPE "iODBC" -#include <isql.h> -#include <isqlext.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) -#ifndef SQL_SUCCEEDED -#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) -#endif - -#elif defined(HAVE_UNIXODBC) /* unixODBC library */ - -#ifdef CHAR -#undef CHAR -#endif - -#ifdef SQLCHAR -#undef SQLCHAR -#endif - -#define ODBC_TYPE "unixODBC" -#include <sql.h> -#include <sqlext.h> -#define HAVE_SQL_EXTENDED_FETCH 1 - -#elif defined(HAVE_ESOOB) /* Easysoft ODBC-ODBC Bridge library */ - -#define ODBC_TYPE "ESOOB" -#include <sql.h> -#include <sqlext.h> -#define HAVE_SQL_EXTENDED_FETCH 1 - -#elif defined(HAVE_OPENLINK) /* OpenLink ODBC drivers */ - -#define ODBC_TYPE "Openlink" -#include <iodbc.h> -#include <isql.h> -#include <isqlext.h> -#include <udbcext.h> -#define HAVE_SQL_EXTENDED_FETCH 1 -#define SQLSMALLINT SWORD -#define SQLUSMALLINT UWORD - -#elif defined(HAVE_BIRDSTEP) /* Raima Birdstep */ - -#define ODBC_TYPE "Birdstep" -#define UNIX -/* - * Extended Fetch in the Birdstep ODBC API is incapable of returning long varchar (memo) fields. - * So the following line has been commented-out to accomadate. - KNS - * - * #define HAVE_SQL_EXTENDED_FETCH 1 - */ -#include <sql.h> -#include <sqlext.h> -#define SQLINTEGER SDWORD -#define SQLSMALLINT SWORD -#define SQLUSMALLINT UWORD - - -#elif defined(HAVE_DBMAKER) /* DBMaker */ - -#define ODBC_TYPE "DBMaker" -#undef ODBCVER -#define ODBCVER 0x0300 -#define HAVE_SQL_EXTENDED_FETCH 1 -#include <odbc.h> - - -#elif defined(HAVE_CODBC) /* Custom ODBC */ - -#define ODBC_TYPE "Custom ODBC" -#define HAVE_SQL_EXTENDED_FETCH 1 -#include <odbc.h> - -#elif defined(HAVE_IBMDB2) /* DB2 CLI */ - -#define ODBC_TYPE "IBM DB2 CLI" -#define HAVE_SQL_EXTENDED_FETCH 1 -#include <sqlcli1.h> -#ifdef DB268K -/* Need to include ASLM for 68K applications */ -#include <LibraryManager.h> -#endif - -#else /* MS ODBC */ - -#define HAVE_SQL_EXTENDED_FETCH 1 -#include <WINDOWS.H> -#include <sql.h> -#include <sqlext.h> -#endif - extern zend_module_entry odbc_module_entry; #define odbc_module_ptr &odbc_module_entry - /* user functions */ PHP_MINIT_FUNCTION(odbc); PHP_MSHUTDOWN_FUNCTION(odbc); @@ -252,95 +92,9 @@ PHP_FUNCTION(odbc_specialcolumns); PHP_FUNCTION(odbc_statistics); -#if defined( HAVE_IBMDB2 ) || defined( HAVE_UNIXODBC ) -#define ODBC_SQL_ENV_T SQLHANDLE -#define ODBC_SQL_CONN_T SQLHANDLE -#define ODBC_SQL_STMT_T SQLHANDLE -#elif defined( HAVE_SOLID_35 ) || defined( HAVE_SAPDB ) || defined ( HAVE_EMPRESS ) -#define ODBC_SQL_ENV_T SQLHENV -#define ODBC_SQL_CONN_T SQLHDBC -#define ODBC_SQL_STMT_T SQLHSTMT -#else -#define ODBC_SQL_ENV_T HENV -#define ODBC_SQL_CONN_T HDBC -#define ODBC_SQL_STMT_T HSTMT -#endif - -typedef struct odbc_connection { - ODBC_SQL_ENV_T henv; - ODBC_SQL_CONN_T hdbc; - char laststate[6]; - char lasterrormsg[SQL_MAX_MESSAGE_LENGTH]; - int id; - int persistent; -} odbc_connection; - -typedef struct odbc_result_value { - char name[32]; - char *value; - long int vallen; - SDWORD coltype; -} odbc_result_value; - -typedef struct odbc_result { - ODBC_SQL_STMT_T stmt; - int id; - odbc_result_value *values; - SWORD numcols; - SWORD numparams; -# if HAVE_SQL_EXTENDED_FETCH - int fetch_abs; -# endif - long longreadlen; - int binmode; - int fetched; - odbc_connection *conn_ptr; -} odbc_result; - -typedef struct { - char *defDB; - char *defUser; - char *defPW; - long allow_persistent; - long check_persistent; - long max_persistent; - long max_links; - long num_persistent; - long num_links; - int defConn; - long defaultlrl; - long defaultbinmode; - char laststate[6]; - char lasterrormsg[SQL_MAX_MESSAGE_LENGTH]; - HashTable *resource_list; - HashTable *resource_plist; -} php_odbc_globals; - -int odbc_add_result(HashTable *list, odbc_result *result); -odbc_result *odbc_get_result(HashTable *list, int count); -void odbc_del_result(HashTable *list, int count); -int odbc_add_conn(HashTable *list, HDBC conn); -odbc_connection *odbc_get_conn(HashTable *list, int count); -void odbc_del_conn(HashTable *list, int ind); -int odbc_bindcols(odbc_result *result TSRMLS_DC); - -#define ODBC_SQL_ERROR_PARAMS odbc_connection *conn_resource, ODBC_SQL_STMT_T stmt, char *func - -void odbc_sql_error(ODBC_SQL_ERROR_PARAMS); - -#define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR) -#define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY) - -#ifdef ZTS -# define ODBCG(v) TSRMG(odbc_globals_id, php_odbc_globals *, v) -#else -# define ODBCG(v) (odbc_globals.v) -extern ZEND_API php_odbc_globals odbc_globals; -#endif - #else -# define odbc_module_ptr NULL +#define odbc_module_ptr NULL #endif /* HAVE_UODBC */ Index: php4/ext/odbc/php_odbc_includes.h +++ php4/ext/odbc/php_odbc_includes.h /* +----------------------------------------------------------------------+ | PHP Version 4 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2002 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Stig Sæther Bakken <ssb@fast.no> | | Andreas Karajannis <Andreas.Karajannis@gmd.de> | | Kevin N. Shallow <kshallow@tampabay.rr.com> Birdstep Support | +----------------------------------------------------------------------+ */ /* $Id: php_odbc_includes.h,v 1.1 2002/06/14 00:07:16 sniper Exp $ */ #ifndef PHP_ODBC_INCLUDES_H #define PHP_ODBC_INCLUDES_H #if HAVE_UODBC #define ODBCVER 0x0250 /*#ifndef MSVC5 #define FAR #endif */ /* checking in the same order as in configure.in */ #if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35) /* Solid Server */ #define ODBC_TYPE "Solid" #if defined(HAVE_SOLID) # include <cli0core.h> # include <cli0ext1.h> # include <cli0env.h> #elif defined(HAVE_SOLID_30) # include <cli0cli.h> # include <cli0defs.h> # include <cli0env.h> #elif defined(HAVE_SOLID_35) # if !defined(PHP_WIN32) # include <sqlunix.h> # endif /* end: #if !defined(PHP_WIN32) */ # include <sqltypes.h> # include <sqlucode.h> # include <sqlext.h> # include <sql.h> #endif /* end: #if defined(HAVE_SOLID) */ #undef HAVE_SQL_EXTENDED_FETCH PHP_FUNCTION(solid_fetch_prev); #define SQLSMALLINT SWORD #define SQLUSMALLINT UWORD #ifndef SQL_SUCCEEDED #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) #endif #elif defined(HAVE_EMPRESS) /* Empress */ #define ODBC_TYPE "Empress" #include <sql.h> #include <sqlext.h> #undef HAVE_SQL_EXTENDED_FETCH #elif defined(HAVE_ADABAS) /* Adabas D */ #define ODBC_TYPE "Adabas D" #include <WINDOWS.H> #include <sql.h> #include <sqlext.h> #define HAVE_SQL_EXTENDED_FETCH 1 #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) #define SQLINTEGER ULONG #define SQLUSMALLINT USHORT #elif defined(HAVE_SAPDB) /* SAP DB */ #define ODBC_TYPE "SAP DB" #include <WINDOWS.H> #include <sql.h> #include <sqlext.h> #define HAVE_SQL_EXTENDED_FETCH 1 #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) #elif defined(HAVE_IODBC) /* iODBC library */ #define ODBC_TYPE "iODBC" #include <isql.h> #include <isqlext.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) #ifndef SQL_SUCCEEDED #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) #endif #elif defined(HAVE_UNIXODBC) /* unixODBC library */ #ifdef CHAR #undef CHAR #endif #ifdef SQLCHAR #undef SQLCHAR #endif #define ODBC_TYPE "unixODBC" #include <sql.h> #include <sqlext.h> #define HAVE_SQL_EXTENDED_FETCH 1 #elif defined(HAVE_ESOOB) /* Easysoft ODBC-ODBC Bridge library */ #define ODBC_TYPE "ESOOB" #include <sql.h> #include <sqlext.h> #define HAVE_SQL_EXTENDED_FETCH 1 #elif defined(HAVE_OPENLINK) /* OpenLink ODBC drivers */ #define ODBC_TYPE "Openlink" #include <iodbc.h> #include <isql.h> #include <isqlext.h> #include <udbcext.h> #define HAVE_SQL_EXTENDED_FETCH 1 #define SQLSMALLINT SWORD #define SQLUSMALLINT UWORD #elif defined(HAVE_BIRDSTEP) /* Raima Birdstep */ #define ODBC_TYPE "Birdstep" #define UNIX /* * Extended Fetch in the Birdstep ODBC API is incapable of returning long varchar (memo) fields. * So the following line has been commented-out to accomadate. - KNS * * #define HAVE_SQL_EXTENDED_FETCH 1 */ #include <sql.h> #include <sqlext.h> #define SQLINTEGER SDWORD #define SQLSMALLINT SWORD #define SQLUSMALLINT UWORD #elif defined(HAVE_DBMAKER) /* DBMaker */ #define ODBC_TYPE "DBMaker" #undef ODBCVER #define ODBCVER 0x0300 #define HAVE_SQL_EXTENDED_FETCH 1 #include <odbc.h> #elif defined(HAVE_CODBC) /* Custom ODBC */ #define ODBC_TYPE "Custom ODBC" #define HAVE_SQL_EXTENDED_FETCH 1 #include <odbc.h> #elif defined(HAVE_IBMDB2) /* DB2 CLI */ #define ODBC_TYPE "IBM DB2 CLI" #define HAVE_SQL_EXTENDED_FETCH 1 #include <sqlcli1.h> #ifdef DB268K /* Need to include ASLM for 68K applications */ #include <LibraryManager.h> #endif #else /* MS ODBC */ #define HAVE_SQL_EXTENDED_FETCH 1 #include <WINDOWS.H> #include <sql.h> #include <sqlext.h> #endif /* Common defines */ #if defined( HAVE_IBMDB2 ) || defined( HAVE_UNIXODBC ) #define ODBC_SQL_ENV_T SQLHANDLE #define ODBC_SQL_CONN_T SQLHANDLE #define ODBC_SQL_STMT_T SQLHANDLE #elif defined( HAVE_SOLID_35 ) || defined( HAVE_SAPDB ) || defined ( HAVE_EMPRESS ) #define ODBC_SQL_ENV_T SQLHENV #define ODBC_SQL_CONN_T SQLHDBC #define ODBC_SQL_STMT_T SQLHSTMT #else #define ODBC_SQL_ENV_T HENV #define ODBC_SQL_CONN_T HDBC #define ODBC_SQL_STMT_T HSTMT #endif typedef struct odbc_connection { ODBC_SQL_ENV_T henv; ODBC_SQL_CONN_T hdbc; char laststate[6]; char lasterrormsg[SQL_MAX_MESSAGE_LENGTH]; int id; int persistent; } odbc_connection; typedef struct odbc_result_value { char name[32]; char *value; long int vallen; SDWORD coltype; } odbc_result_value; typedef struct odbc_result { ODBC_SQL_STMT_T stmt; int id; odbc_result_value *values; SWORD numcols; SWORD numparams; # if HAVE_SQL_EXTENDED_FETCH int fetch_abs; # endif long longreadlen; int binmode; int fetched; odbc_connection *conn_ptr; } odbc_result; typedef struct { char *defDB; char *defUser; char *defPW; long allow_persistent; long check_persistent; long max_persistent; long max_links; long num_persistent; long num_links; int defConn; long defaultlrl; long defaultbinmode; char laststate[6]; char lasterrormsg[SQL_MAX_MESSAGE_LENGTH]; HashTable *resource_list; HashTable *resource_plist; } php_odbc_globals; int odbc_add_result(HashTable *list, odbc_result *result); odbc_result *odbc_get_result(HashTable *list, int count); void odbc_del_result(HashTable *list, int count); int odbc_add_conn(HashTable *list, HDBC conn); odbc_connection *odbc_get_conn(HashTable *list, int count); void odbc_del_conn(HashTable *list, int ind); int odbc_bindcols(odbc_result *result TSRMLS_DC); #define ODBC_SQL_ERROR_PARAMS odbc_connection *conn_resource, ODBC_SQL_STMT_T stmt, char *func void odbc_sql_error(ODBC_SQL_ERROR_PARAMS); #define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR) #define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY) #ifdef ZTS # define ODBCG(v) TSRMG(odbc_globals_id, php_odbc_globals *, v) #else # define ODBCG(v) (odbc_globals.v) extern ZEND_API php_odbc_globals odbc_globals; #endif #endif /* HAVE_UODBC */ #endif /* PHP_ODBC_INCLUDES_H */ /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: */
« previous php.cvs (#12357) next »