summaryrefslogtreecommitdiff
path: root/ext/odbc/php3_odbc.h
diff options
context:
space:
mode:
authorStig Bakken <ssb@php.net>1999-04-19 15:04:11 +0000
committerStig Bakken <ssb@php.net>1999-04-19 15:04:11 +0000
commit7dee737fb448b0ab2d35debd358b3c10f01508a8 (patch)
tree9b2bb34e9b65d2d244f19f631e1b5e6629d47b11 /ext/odbc/php3_odbc.h
parentaac5a431237c60bc14204d5697e81bcfb9395d4d (diff)
downloadphp-git-7dee737fb448b0ab2d35debd358b3c10f01508a8.tar.gz
moved odbc into ext/
Diffstat (limited to 'ext/odbc/php3_odbc.h')
-rw-r--r--ext/odbc/php3_odbc.h729
1 files changed, 729 insertions, 0 deletions
diff --git a/ext/odbc/php3_odbc.h b/ext/odbc/php3_odbc.h
new file mode 100644
index 0000000000..1357553e27
--- /dev/null
+++ b/ext/odbc/php3_odbc.h
@@ -0,0 +1,729 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP HTML Embedded Scripting Language Version 3.0 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997,1998 PHP Development Team (See Credits file) |
+ +----------------------------------------------------------------------+
+ | This program is free software; you can redistribute it and/or modify |
+ | it under the terms of one of the following licenses: |
+ | |
+ | A) the GNU General Public License as published by the Free Software |
+ | Foundation; either version 2 of the License, or (at your option) |
+ | any later version. |
+ | |
+ | B) the PHP License as published by the PHP Development Team and |
+ | included in the distribution in the file: LICENSE |
+ | |
+ | This program is distributed in the hope that it will be useful, |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ | GNU General Public License for more details. |
+ | |
+ | You should have received a copy of both licenses referred to here. |
+ | If you did not, or have any questions about PHP licensing, please |
+ | contact core@php.net. |
+ +----------------------------------------------------------------------+
+ | Authors: Stig Sæther Bakken <ssb@guardian.no> |
+ | Andreas Karajannis <Andreas.Karajannis@gmd.de> |
+ +----------------------------------------------------------------------+
+ */
+
+/* $Id$ */
+
+#ifndef _UNIFIED_ODBC_H
+#define _UNIFIED_ODBC_H
+
+#if HAVE_UODBC
+
+/*these defines are used to seperate the different
+database modules that use the uodbc interface so that
+two or more of them can be compiled into the same
+php binary*/
+
+/*
+*
+* Defines for ODBC
+*
+*/
+#if HAVE_UODBC
+/* win32 vars for thread local storage */
+#define UODBC_MUTEX uodbc_mutex
+#define UODBC_TLS UODBCTls
+#define UODBC_GLOBAL_STRUCT uodbc_global_struct
+#define UODBC_GLOBALS uodbc_globals
+/* defines for variables, structs, etc */
+#define UODBC_MODULE_NAME "ODBC (uODBC)"
+#define UODBC_FUNCTIONS uodbc_functions
+#define UODBC_MODULE_ENTRY uodbc_module_entry
+#define UODBC_CONNECTION uodbc_connection
+#define UODBC_RESULT_VALUE uodbc_result_value
+#define UODBC_RESULT uodbc_result
+#define UODBC_MODULE uodbc_module
+#define PHP3_UODBC_MODULE php3_uodbc_module
+
+/* function defines */
+#define PHP3_MINIT_UODBC php3_minit_uodbc
+#define PHP3_MSHUTDOWN_UODBC php3_mshutdown_uodbc
+#define PHP3_RINIT_UODBC php3_rinit_uodbc
+#define PHP3_INFO_UODBC php3_info_uodbc
+#define PHP3_UODBC_SETOPTION php3_uodbc_setoption
+#define PHP3_UODBC_AUTOCOMMIT php3_uodbc_autocommit
+#define PHP3_UODBC_CLOSE php3_uodbc_close
+#define PHP3_UDOBC_CLOSE_ALL php3_uodbc_close_all
+#define PHP3_UODBC_COMMIT php3_uodbc_commit
+#define PHP3_UODBC_CONNECT php3_uodbc_connect
+#define PHP3_UODBC_PCONNECT php3_uodbc_pconnect
+#define PHP3_UODBC_DO_CONNECT php3_uodbc_do_connect
+#define PHP3_UODBC_CURSOR php3_uodbc_cursor
+#define PHP3_UODBC_DO php3_uodbc_do
+#define PHP3_UODBC_EXECUTE php3_uodbc_execute
+#define PHP3_UODBC_FETCH_INTO php3_uodbc_fetch_into
+#define PHP3_UODBC_FETCH_ROW php3_uodbc_fetch_row
+#define PHP3_UODBC_FIELD_LEN php3_uodbc_field_len
+#define PHP3_UODBC_FIELD_NAME php3_uodbc_field_name
+#define PHP3_UODBC_FIELD_TYPE php3_uodbc_field_type
+#define PHP3_UODBC_FIELD_NUM php3_uodbc_field_num
+#define PHP3_UODBC_FREE_RESULT php3_uodbc_free_result
+#define PHP3_UODBC_NUM_FIELDS php3_uodbc_num_fields
+#define PHP3_UODBC_NUM_ROWS php3_uodbc_num_rows
+#define PHP3_UODBC_PREPARE php3_uodbc_prepare
+#define PHP3_UODBC_RESULT php3_uodbc_result
+#define PHP3_UODBC_RESULT_ALL php3_uodbc_result_all
+#define PHP3_UODBC_ROLLBACK php3_uodbc_rollback
+#define PHP3_UODBC_TRANSACT php3_uodbc_transact
+#define PHP3_UODBC_BINMODE php3_uodbc_binmode
+#define PHP3_UODBC_LONGREADLEN php3_uodbc_longreadlen
+
+/* internal function defines */
+#define UODBC_ADD_RESULT uodbc_add_result
+#define UODBC_GET_RESULT uodbc_get_result
+#define UODBC_DEL_RESULT uodbc_del_result
+#define UODBC_ADD_CONN uodbc_add_conn
+#define UODBC_GET_CONN uodbc_get_conn
+#define UODBC_DEL_CONN uodbc_del_conn
+#define UODBC_SQL_ERROR uodbc_sql_error
+#define UODBC_BINDCOLS uodbc_bindcols
+#define _FREE_UODBC_RESULT _free_uodbc_result
+#define _CLOSE_UODBC_CONNECTION _close_uodbc_connection
+#define _CLOSE_UODBC_PCONNECTION _close_uodbc_pconnection
+/* function name defines */
+#define ODBC_SETOPTION "odbc_setoption"
+#define ODBC_AUTOCOMMIT "odbc_autocommit"
+#define ODBC_CLOSE "odbc_close"
+#define ODBC_CLOSE_ALL "odbc_close_all"
+#define ODBC_COMMIT "odbc_commit"
+#define ODBC_CONNECT "odbc_connect"
+#define ODBC_PCONNECT "odbc_pconnect"
+#define ODBC_CURSOR "odbc_cursor"
+#define ODBC_DO "odbc_do"
+#define ODBC_EXEC "odbc_exec"
+#define ODBC_PREPARE "odbc_prepare"
+#define ODBC_EXECUTE "odbc_execute"
+#define ODBC_FETCH_ROW "odbc_fetch_row"
+#define ODBC_FETCH_INTO "odbc_fetch_into"
+#define ODBC_FIELD_LEN "odbc_field_len"
+#define ODBC_FIELD_NAME "odbc_field_name"
+#define ODBC_FIELD_TYPE "odbc_field_type"
+#define ODBC_FIELD_NUM "odbc_field_num"
+#define ODBC_FREE_RESULT "odbc_free_result"
+#define ODBC_NUM_FIELDS "odbc_num_fields"
+#define ODBC_NUM_ROWS "odbc_num_rows"
+#define ODBC_RESULT "odbc_result"
+#define ODBC_RESULT_ALL "odbc_result_all"
+#define ODBC_ROLLBACK "odbc_rollback"
+#define ODBC_TRANSACT "odbc_transact"
+#define ODBC_DO_CONNECT "odbc_do_connect"
+#define ODBC_LONGREADLEN "odbc_longreadlen"
+#define ODBC_BINMODE "odbc_binmode"
+
+/* ini variable defines */
+#define ODBC_INI_DEFAULTDB "uodbc.default_db"
+#define ODBC_INI_DEFAULTUSER "uodbc.default_user"
+#define ODBC_INI_DEFAULTPW "uodbc.default_pw"
+#define ODBC_INI_ALLOWPERSISTENT "uodbc.allow_persistent"
+#define ODBC_INI_MAXPERSISTENT "uodbc.max_persistent"
+#define ODBC_INI_MAXLINKS "uodbc.max_links"
+#define ODBC_INI_DEFAULTLRL "uodbc.defaultlrl"
+#define ODBC_INI_DEFAULTBINMODE "uodbc.defaultbinmode"
+#endif
+
+/*
+*
+* Defines for SOLID
+*
+*/
+
+
+#if 0 /* HAVE_SOLID turned off for now,
+ will use above uodbc defines for now */
+/* win32 vars for thread local storage */
+#define UODBC_MUTEX solid_mutex
+#define UODBC_TLS SOLIDTls
+#define UODBC_GLOBAL_STRUCT solid_global_struct
+#define UODBC_GLOBALS solid_globals
+/* defines for variables, structs, etc */
+#define UODBC_MODULE_NAME "SOLID (uODBC)"
+#define UODBC_FUNCTIONS solid_functions
+#define UODBC_MODULE_ENTRY solid_module_entry
+#define UODBC_CONNECTION solid_connection
+#define UODBC_RESULT_VALUE solid_result_value
+#define UODBC_RESULT solid_result
+#define UODBC_MODULE solid_module
+#define PHP3_UODBC_MODULE php3_solid_module
+
+/* function defines */
+#define PHP3_MINIT_UODBC php3_minit_solid
+#define PHP3_MSHUTDOWN_UODBC php3_mshutdown_solid
+#define PHP3_RINIT_UODBC php3_rinit_solid
+#define PHP3_INFO_UODBC php3_info_solid
+#define PHP3_UODBC_SETOPTION php3_solid_setoption
+#define PHP3_UODBC_AUTOCOMMIT php3_solid_autocommit
+#define PHP3_UODBC_CLOSE php3_solid_close
+#define PHP3_UDOBC_CLOSE_ALL php3_solid_close_all
+#define PHP3_UODBC_COMMIT php3_solid_commit
+#define PHP3_UODBC_CONNECT php3_solid_connect
+#define PHP3_UODBC_PCONNECT php3_solid_pconnect
+#define PHP3_UODBC_DO_CONNECT php3_solid_do_connect
+#define PHP3_UODBC_CURSOR php3_solid_cursor
+#define PHP3_UODBC_DO php3_solid_do
+#define PHP3_UODBC_EXECUTE php3_solid_execute
+#define PHP3_UODBC_FETCH_INTO php3_solid_fetch_into
+#define PHP3_UODBC_FETCH_ROW php3_solid_fetch_row
+#define PHP3_UODBC_FIELD_LEN php3_solid_field_len
+#define PHP3_UODBC_FIELD_NAME php3_solid_field_name
+#define PHP3_UODBC_FIELD_TYPE php3_solid_field_type
+#define PHP3_UODBC_FREE_RESULT php3_solid_free_result
+#define PHP3_UODBC_NUM_FIELDS php3_solid_num_fields
+#define PHP3_UODBC_NUM_ROWS php3_solid_num_rows
+#define PHP3_UODBC_PREPARE php3_solid_prepare
+#define PHP3_UODBC_RESULT php3_solid_result
+#define PHP3_UODBC_RESULT_ALL php3_solid_result_all
+#define PHP3_UODBC_ROLLBACK php3_solid_rollback
+#define PHP3_UODBC_TRANSACT php3_solid_transact
+
+/* internal function defines */
+#define UODBC_ADD_RESULT solid_add_result
+#define UODBC_GET_RESULT solid_get_result
+#define UODBC_DEL_RESULT solid_del_result
+#define UODBC_ADD_CONN solid_add_conn
+#define UODBC_GET_CONN solid_get_conn
+#define UODBC_DEL_CONN solid_del_conn
+#define UODBC_SQL_ERROR solid_sql_error
+#define UODBC_BINDCOLS solid_bindcols
+#define _FREE_UODBC_RESULT _free_solid_result
+#define _CLOSE_UODBC_CONNECTION _close_solid_connection
+#define _CLOSE_UODBC_PCONNECTION _close_solid_pconnection
+/* function name defines */
+#define ODBC_SETOPTION "solid_setoption"
+#define ODBC_AUTOCOMMIT "solid_autocommit"
+#define ODBC_CLOSE "solid_close"
+#define ODBC_CLOSE_ALL "solid_close_all"
+#define ODBC_COMMIT "solid_commit"
+#define ODBC_CONNECT "solid_connect"
+#define ODBC_PCONNECT "solid_pconnect"
+#define ODBC_CURSOR "solid_cursor"
+#define ODBC_DO "solid_do"
+#define ODBC_EXEC "solid_exec"
+#define ODBC_PREPARE "solid_prepare"
+#define ODBC_EXECUTE "solid_execute"
+#define ODBC_FETCH_ROW "solid_fetch_row"
+#define ODBC_FETCH_INTO "solid_fetch_into"
+#define ODBC_FIELD_LEN "solid_field_len"
+#define ODBC_FIELD_NAME "solid_field_name"
+#define ODBC_FIELD_TYPE "solid_field_type"
+#define ODBC_FREE_RESULT "solid_free_result"
+#define ODBC_NUM_FIELDS "solid_num_fields"
+#define ODBC_NUM_ROWS "solid_num_rows"
+#define ODBC_RESULT "solid_result"
+#define ODBC_RESULT_ALL "solid_result_all"
+#define ODBC_ROLLBACK "solid_rollback"
+#define ODBC_TRANSACT "solid_transact"
+#define ODBC_DO_CONNECT "solid_do_connect"
+
+/* ini variable defines */
+#define ODBC_INI_DEFAULTDB "solid.default_db"
+#define ODBC_INI_DEFAULTUSER "solid.default_user"
+#define ODBC_INI_DEFAULTPW "solid.default_pw"
+#define ODBC_INI_ALLOWPERSISTENT "solid.allow_persistent"
+#define ODBC_INI_MAXPERSISTENT "solid.max_persistent"
+#define ODBC_INI_MAXLINKS "solid.max_links"
+#endif
+
+
+/*
+*
+* Defines for ADABAS
+*
+*/
+
+
+#if 0 /* HAVE_ADABAS turned for for now, uses
+ defines from the ODBC section */
+/* win32 vars for thread local storage */
+#define UODBC_MUTEX adabas_mutex
+#define UODBC_TLS ADABASTls
+#define UODBC_GLOBAL_STRUCT adabas_global_struct
+#define UODBC_GLOBALS adabas_globals
+/* defines for variables, structs, etc */
+#define UODBC_MODULE_NAME "ADABAS D (uODBC)"
+#define UODBC_FUNCTIONS adabas_functions
+#define UODBC_MODULE_ENTRY adabas_module_entry
+#define UODBC_CONNECTION adabas_connection
+#define UODBC_RESULT_VALUE adabas_result_value
+#define UODBC_RESULT adabas_result
+#define UODBC_MODULE adabas_module
+#define PHP3_UODBC_MODULE php3_adabas_module
+
+/* function defines */
+#define PHP3_MINIT_UODBC php3_minit_adabas
+#define PHP3_MSHUTDOWN_UODBC php3_mshutdown_adabas
+#define PHP3_RINIT_UODBC php3_rinit_adabas
+#define PHP3_INFO_UODBC php3_info_adabas
+#define PHP3_UODBC_SETOPTION php3_adabas_setoption
+#define PHP3_UODBC_AUTOCOMMIT php3_adabas_autocommit
+#define PHP3_UODBC_CLOSE php3_adabas_close
+#define PHP3_UDOBC_CLOSE_ALL php3_adabas_close_all
+#define PHP3_UODBC_COMMIT php3_adabas_commit
+#define PHP3_UODBC_CONNECT php3_adabas_connect
+#define PHP3_UODBC_PCONNECT php3_adabas_pconnect
+#define PHP3_UODBC_DO_CONNECT php3_adabas_do_connect
+#define PHP3_UODBC_CURSOR php3_adabas_cursor
+#define PHP3_UODBC_DO php3_adabas_do
+#define PHP3_UODBC_EXECUTE php3_adabas_execute
+#define PHP3_UODBC_FETCH_INTO php3_adabas_fetch_into
+#define PHP3_UODBC_FETCH_ROW php3_adabas_fetch_row
+#define PHP3_UODBC_FIELD_LEN php3_adabas_field_len
+#define PHP3_UODBC_FIELD_NAME php3_adabas_field_name
+#define PHP3_UODBC_FIELD_TYPE php3_adabas_field_type
+#define PHP3_UODBC_FREE_RESULT php3_adabas_free_result
+#define PHP3_UODBC_NUM_FIELDS php3_adabas_num_fields
+#define PHP3_UODBC_NUM_ROWS php3_adabas_num_rows
+#define PHP3_UODBC_PREPARE php3_adabas_prepare
+#define PHP3_UODBC_RESULT php3_adabas_result
+#define PHP3_UODBC_RESULT_ALL php3_adabas_result_all
+#define PHP3_UODBC_ROLLBACK php3_adabas_rollback
+#define PHP3_UODBC_TRANSACT php3_adabas_transact
+
+/* internal function defines */
+#define UODBC_ADD_RESULT adabas_add_result
+#define UODBC_GET_RESULT adabas_get_result
+#define UODBC_DEL_RESULT adabas_del_result
+#define UODBC_ADD_CONN adabas_add_conn
+#define UODBC_GET_CONN adabas_get_conn
+#define UODBC_DEL_CONN adabas_del_conn
+#define UODBC_SQL_ERROR adabas_sql_error
+#define UODBC_BINDCOLS adabas_bindcols
+#define _FREE_UODBC_RESULT _free_adabas_result
+#define _CLOSE_UODBC_CONNECTION _close_adabas_connection
+#define _CLOSE_UODBC_PCONNECTION _close_adabas_pconnection
+/* function name defines */
+#define ODBC_SETOPTION "adabas_setoption"
+#define ODBC_AUTOCOMMIT "adabas_autocommit"
+#define ODBC_CLOSE "adabas_close"
+#define ODBC_CLOSE_ALL "adabas_close_all"
+#define ODBC_COMMIT "adabas_commit"
+#define ODBC_CONNECT "adabas_connect"
+#define ODBC_PCONNECT "adabas_pconnect"
+#define ODBC_CURSOR "adabas_cursor"
+#define ODBC_DO "adabas_do"
+#define ODBC_EXEC "adabas_exec"
+#define ODBC_PREPARE "adabas_prepare"
+#define ODBC_EXECUTE "adabas_execute"
+#define ODBC_FETCH_ROW "adabas_fetch_row"
+#define ODBC_FETCH_INTO "adabas_fetch_into"
+#define ODBC_FIELD_LEN "adabas_field_len"
+#define ODBC_FIELD_NAME "adabas_field_name"
+#define ODBC_FIELD_TYPE "adabas_field_type"
+#define ODBC_FREE_RESULT "adabas_free_result"
+#define ODBC_NUM_FIELDS "adabas_num_fields"
+#define ODBC_NUM_ROWS "adabas_num_rows"
+#define ODBC_RESULT "adabas_result"
+#define ODBC_RESULT_ALL "adabas_result_all"
+#define ODBC_ROLLBACK "adabas_rollback"
+#define ODBC_TRANSACT "adabas_transact"
+#define ODBC_DO_CONNECT "adabas_do_connect"
+
+/* ini variable defines */
+#define ODBC_INI_DEFAULTDB "adabas.default_db"
+#define ODBC_INI_DEFAULTUSER "adabas.default_user"
+#define ODBC_INI_DEFAULTPW "adabas.default_pw"
+#define ODBC_INI_ALLOWPERSISTENT "adabas.allow_persistent"
+#define ODBC_INI_MAXPERSISTENT "adabas.max_persistent"
+#define ODBC_INI_MAXLINKS "adabas.max_links"
+#endif
+
+/* checking in the same order as in configure.in */
+# if HAVE_SOLID
+# include <cli0core.h>
+# include <cli0ext1.h>
+# define HAVE_SQL_EXTENDED_FETCH 0
+extern void php3_solid_fetch_prev(INTERNAL_FUNCTION_PARAMETERS);
+# if defined(UODBC_UNIQUE_NAMES)
+# define UODBC_TYPE solid
+# define UODBC_NAME "solid"
+# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(solid_##name, php3_solid_##name, arg_types)
+# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(solid_##php_name, php3_solid_##name, arg_types)
+# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_solid_##name)
+# define UODBC_FNAME(name) php3i_solid_##name
+# define ODBC_INI_VAR_NAME(name) #name
+# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(solid.##a)
+# define UODBC_VAR_NAME(name) name
+# define UODBC_VAR(a) UODBC_VAR_NAME(solid_##a)
+# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_solid_##a)
+# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+# define solid_module_ptr &UODBC_MODULE_ENTRY
+# endif
+
+#elif HAVE_EMPRESS
+# include <sql.h>
+# include <sqlext.h>
+# define HAVE_SQL_EXTENDED_FETCH 0
+
+#elif HAVE_ADABAS
+#include <WINDOWS.H>
+#include <sql.h>
+#include <sqlext.h>
+# define HAVE_SQL_EXTENDED_FETCH 1
+# if defined(UODBC_UNIQUE_NAMES)
+# define UODBC_TYPE adabas
+# define UODBC_NAME "adabas"
+# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(ada_##name, php3_ada_##name, arg_types)
+# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(ada_##php_name, php3_ada_##name, arg_types)
+# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_ada_##name)
+# define UODBC_FNAME(name) php3i_ada_##name
+# define ODBC_INI_VAR_NAME(name) #name
+# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(ada.##a)
+# define UODBC_VAR_NAME(name) name
+# define UODBC_VAR(a) UODBC_VAR_NAME(ada_##a)
+# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_ada_##a)
+# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+# define ada_module_ptr &UODBC_MODULE_ENTRY
+# endif
+
+# elif HAVE_IODBC && !(WIN32|WINNT)
+# include <isql.h>
+# include <isqlext.h>
+# include <odbc_types.h>
+# include <odbc_funcs.h>
+# define HAVE_SQL_EXTENDED_FETCH 1
+# define SQL_FD_FETCH_ABSOLUTE 0x00000010L
+# define SQL_CURSOR_DYNAMIC 2UL
+# define SQL_NO_TOTAL (-4)
+# define SQL_SO_DYNAMIC 0x00000004L
+# define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
+# define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
+# if defined(UODBC_UNIQUE_NAMES)
+# define UODBC_TYPE iodbc
+# define UODBC_NAME "iodbc"
+# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(iodbc_##name, php3_iodbc_##name, arg_types)
+# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(iodbc_##php_name, php3_iodbc_##name, arg_types)
+# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_iodbc_##name)
+# define UODBC_FNAME(name) php3i_iodbc_##name
+# define ODBC_INI_VAR_NAME(name) #name
+# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(iodbc.##a)
+# define UODBC_VAR_NAME(name) name
+# define UODBC_VAR(a) UODBC_VAR_NAME(iodbc_##a)
+# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_iodbc_##a)
+# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+# define iodbc_module_ptr &UODBC_MODULE_ENTRY
+# endif
+
+#elif HAVE_OPENLINK
+
+# include <iodbc.h>
+# include <isql.h>
+# include <isqlext.h>
+# include <udbcext.h>
+# define HAVE_SQL_EXTENDED_FETCH 1
+# if defined(UODBC_UNIQUE_NAMES)
+# define UODBC_TYPE opnlnk
+# define UODBC_NAME "opnlnk"
+# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(opnlnk_##name, php3_opnlnk_##name, arg_types)
+# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(opnlnk_##php_name, php3_opnlnk_##name, arg_types)
+# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_opnlnk_##name)
+# define UODBC_FNAME(name) php3i_opnlnk_##name
+# define ODBC_INI_VAR_NAME(name) #name
+# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(opnlnk.##a)
+# define UODBC_VAR_NAME(name) name
+# define UODBC_VAR(a) UODBC_VAR_NAME(opnlnk_##a)
+# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_opnlnk_##a)
+# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+# define opnlnk_module_ptr &UODBC_MODULE_ENTRY
+# endif
+
+#elif HAVE_VELOCIS
+/* Nothing ??? */
+# define UNIX
+# define HAVE_SQL_EXTENDED_FETCH 1
+# include <sql.h>
+# include <sqlext.h>
+# if defined(UODBC_UNIQUE_NAMES)
+# define UODBC_TYPE velocis
+# define UODBC_NAME "velocis"
+# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(velocis_##name, php3_velocis_##name, arg_types)
+# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(velocis_##php_name, php3_velocis_##name, arg_types)
+# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_velocis_##name)
+# define UODBC_FNAME(name) php3i_velocis_##name
+# define ODBC_INI_VAR_NAME(name) #name
+# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(velocis.##a)
+# define UODBC_VAR_NAME(name) name
+# define UODBC_VAR(a) UODBC_VAR_NAME(velocis_##a)
+# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_velocis_##a)
+# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+# define velocis_module_ptr &UODBC_MODULE_ENTRY
+# endif
+
+#elif HAVE_CODBC
+# define HAVE_SQL_EXTENDED_FETCH 1
+# include <odbc.h>
+# if defined(UODBC_UNIQUE_NAMES)
+# define UODBC_TYPE codbc
+# define UODBC_NAME "codbc"
+# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(codbc_##name, php3_codbc_##name, arg_types)
+# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(codbc_##php_name, php3_codbc_##name, arg_types)
+# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_codbc_##name)
+# define UODBC_FNAME(name) php3i_codbc_##name
+# define ODBC_INI_VAR_NAME(name) #name
+# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(codbc.##a)
+# define UODBC_VAR_NAME(name) name
+# define UODBC_VAR(a) UODBC_VAR_NAME(codbc_##a)
+# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_codbc_##a)
+# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+# define codbc_module_ptr &UODBC_MODULE_ENTRY
+# endif
+
+#elif HAVE_DB2
+# define HAVE_SQL_EXTENDED_FETCH 1
+# include <sqlcli1.h>
+# ifdef DB268K
+/* Need to include ASLM for 68K applications */
+# include <LibraryManager.h>
+# endif
+# if defined(UODBC_UNIQUE_NAMES)
+# define UODBC_TYPE db2
+# define UODBC_NAME "db2"
+# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(db2_##name, php3_db2_##name, arg_types)
+# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(db2_##php_name, php3_db2_##name, arg_types)
+# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_db2_##name)
+# define UODBC_FNAME(name) php3i_db2_##name
+# define ODBC_INI_VAR_NAME(name) #name
+# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(db2.##a)
+# define UODBC_VAR_NAME(name) name
+# define UODBC_VAR(a) UODBC_VAR_NAME(db2_##a)
+# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_db2_##a)
+# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+# define db2_module_ptr &UODBC_MODULE_ENTRY
+# endif
+
+# else /* MS ODBC */
+# define HAVE_SQL_EXTENDED_FETCH 1
+# include <WINDOWS.H>
+# include <sql.h>
+# include <sqlext.h>
+# if defined(UODBC_UNIQUE_NAMES)
+# define UODBC_TYPE wodbc
+# define UODBC_NAME "wodbc"
+# define UODBC_FE(name, arg_types) UODBC_NAMED_FE(wodbc_##name, php3_wodbc_##name, arg_types)
+# define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(wodbc_##php_name, php3_wodbc_##name, arg_types)
+# define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_wodbc_##name)
+# define UODBC_FNAME(name) php3i_wodbc_##name
+# define ODBC_INI_VAR_NAME(name) #name
+# define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(wuodbc.##a)
+# define UODBC_VAR_NAME(name) name
+# define UODBC_VAR(a) UODBC_VAR_NAME(wodbc_##a)
+# define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_wuodbc_##a)
+# define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+# define wodbc_module_ptr &UODBC_MODULE_ENTRY
+# endif
+# endif
+
+
+#if !defined(UODBC_UNIQUE_NAMES)
+#define UODBC_TYPE odbc
+#define UODBC_NAME "odbc"
+#define UODBC_FE(name, arg_types) UODBC_NAMED_FE(odbc_##name, php3_odbc_##name, arg_types)
+#define UODBC_FE_ALIAS(php_name, name, arg_types) UODBC_NAMED_FE(odbc_##php_name, php3_odbc_##name, arg_types)
+#define UODBC_FUNCTION(name) UODBC_NAMED_FUNCTION(php3_odbc_##name)
+#define UODBC_FNAME(name) php3i_odbc_##name
+#define ODBC_INI_VAR_NAME(name) #name
+#define ODBC_INI_VAR(a) ODBC_INI_VAR_NAME(uodbc.##a)
+#define UODBC_VAR_NAME(name) name
+#define UODBC_VAR(a) UODBC_VAR_NAME(uodbc_##a)
+#define PHP3_UODBC_VAR(a) UODBC_VAR_NAME(php3_uodbc_##a)
+#define UODBC_MODULE_ENTRY UODBC_VAR(module_entry)
+#define uodbc_module_ptr &UODBC_MODULE_ENTRY
+#else
+#define UODBC_ALIAS(name, arg_types) UODBC_NAMED_FE(odbc_##name, php3_odbc_##name, arg_types)
+#define UODBC_ALIAS_FE(php_name, name, arg_types) UODBC_NAMED_FE(odbc_##php_name, php3_odbc_##name, arg_types)
+#endif
+
+
+
+/*
+*
+* Defines for ODBC
+*
+*/
+
+/* win32 vars for thread local storage */
+#define UODBC_MUTEX UODBC_VAR(mutex)
+#define UODBC_TLS UODBC_VAR(Tls)
+#define UODBC_GLOBAL_STRUCT UODBC_VAR(global_struct)
+#define UODBC_GLOBALS UODBC_VAR(globals)
+/* defines for variables, structs, etc */
+#define UODBC_MODULE_NAME "ODBC"
+#define UODBC_FUNCTIONS UODBC_VAR(functions)
+#define UODBC_CONNECTION UODBC_VAR(connection)
+#define UODBC_RESULT_VALUE UODBC_VAR(result_value)
+#define UODBC_RESULT UODBC_VAR(result)
+#define UODBC_MODULE UODBC_VAR(module)
+#define UODBC_MODULE_PTR UODBC_VAR(module_ptr)
+#define PHP3_UODBC_MODULE PHP3_UODBC_VAR(module)
+
+/* function defines */
+#define PHP3_MINIT_UODBC UODBC_FNAME(minit)
+#define PHP3_MSHUTDOWN_UODBC UODBC_FNAME(mshutdown)
+#define PHP3_RINIT_UODBC UODBC_FNAME(rinit)
+#define PHP3_INFO_UODBC UODBC_FNAME(info)
+
+/* internal function defines */
+#define UODBC_ADD_RESULT UODBC_FNAME(add_result)
+#define UODBC_GET_RESULT UODBC_FNAME(get_result)
+#define UODBC_DEL_RESULT UODBC_FNAME(del_result)
+#define UODBC_ADD_CONN UODBC_FNAME(add_conn)
+#define UODBC_GET_CONN UODBC_FNAME(get_conn)
+#define UODBC_DEL_CONN UODBC_FNAME(del_conn)
+#define UODBC_SQL_ERROR UODBC_FNAME(sql_error)
+#define UODBC_BINDCOLS UODBC_FNAME(bindcols)
+#define PHP3_UODBC_DO_CONNECT UODBC_FNAME(_do_connect)
+#define PHP3_UODBC_TRANSACT UODBC_FNAME(_do_transact)
+
+# ifndef MSVC5
+# define FAR
+# endif
+
+extern php3_module_entry UODBC_MODULE_ENTRY;
+
+/* uODBC functions */
+extern int PHP3_MINIT_UODBC(INIT_FUNC_ARGS);
+extern int PHP3_MSHUTDOWN_UODBC(void);
+extern int PHP3_RINIT_UODBC(INIT_FUNC_ARGS);
+extern void PHP3_INFO_UODBC(void);
+extern UODBC_FUNCTION(setoption);
+extern UODBC_FUNCTION(autocommit);
+extern UODBC_FUNCTION(close);
+extern UODBC_FUNCTION(close_all);
+extern UODBC_FUNCTION(commit);
+extern UODBC_FUNCTION(connect);
+extern UODBC_FUNCTION(pconnect);
+extern void PHP3_UODBC_DO_CONNECT(INTERNAL_FUNCTION_PARAMETERS, int);
+extern UODBC_FUNCTION(cursor);
+extern UODBC_FUNCTION(exec);
+/*extern UODBC_FUNCTION(do);*/
+extern UODBC_FUNCTION(execute);
+extern UODBC_FUNCTION(fetch_into);
+extern UODBC_FUNCTION(fetch_row);
+extern UODBC_FUNCTION(field_len);
+extern UODBC_FUNCTION(field_name);
+extern UODBC_FUNCTION(field_type);
+extern UODBC_FUNCTION(field_num);
+extern UODBC_FUNCTION(free_result);
+extern UODBC_FUNCTION(num_fields);
+extern UODBC_FUNCTION(num_rows);
+extern UODBC_FUNCTION(prepare);
+extern UODBC_FUNCTION(result);
+extern UODBC_FUNCTION(result_all);
+extern UODBC_FUNCTION(rollback);
+extern void PHP3_UODBC_TRANSACT(INTERNAL_FUNCTION_PARAMETERS, int);
+extern UODBC_FUNCTION(binmode);
+extern UODBC_FUNCTION(longreadlen);
+
+typedef struct UODBC_CONNECTION {
+#if HAVE_DB2
+ SQLHANDLE hdbc;
+#else
+ HDBC hdbc;
+#endif
+ int open;
+} UODBC_CONNECTION;
+
+typedef struct UODBC_RESULT_VALUE {
+ char name[32];
+ char *value;
+ long int vallen;
+ SDWORD coltype;
+} UODBC_RESULT_VALUE;
+
+typedef struct UODBC_RESULT {
+#if HAVE_DB2
+ SQLHANDLE stmt;
+#else
+ HSTMT stmt;
+#endif
+ UODBC_RESULT_VALUE *values;
+ SWORD numcols;
+ SWORD numparams;
+# if HAVE_SQL_EXTENDED_FETCH
+ int fetch_abs;
+# endif
+ long longreadlen;
+ int binmode;
+ int fetched;
+ UODBC_CONNECTION *conn_ptr;
+} UODBC_RESULT;
+
+typedef struct {
+#if HAVE_DB2
+ SQLHANDLE henv;
+#else
+ HENV henv;
+#endif
+ char *defDB;
+ char *defUser;
+ char *defPW;
+ long allow_persistent;
+ long max_persistent;
+ long max_links;
+ long num_persistent;
+ long num_links;
+ int defConn;
+ int le_result, le_conn, le_pconn;
+ long defaultlrl;
+ long defaultbinmode;
+ HashTable *resource_list;
+ HashTable *resource_plist;
+} UODBC_MODULE;
+
+# ifndef THREAD_SAFE
+extern UODBC_MODULE PHP3_UODBC_MODULE;
+# endif
+
+int UODBC_ADD_RESULT(HashTable *list, UODBC_RESULT *result);
+UODBC_RESULT *UODBC_GET_RESULT(HashTable *list, int count);
+void UODBC_DEL_RESULT(HashTable *list, int count);
+int UODBC_ADD_CONN(HashTable *list, HDBC conn);
+UODBC_CONNECTION *UODBC_GET_CONN(HashTable *list, int count);
+void UODBC_DEL_CONN(HashTable *list, int ind);
+#if HAVE_DB2
+void UODBC_SQL_ERROR(SQLHANDLE conn, SQLHANDLE stmt, char *func);
+#else
+void UODBC_SQL_ERROR(HDBC conn, HSTMT stmt, char *func);
+#endif
+int UODBC_BINDCOLS(UODBC_RESULT *result);
+
+#define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR)
+#define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY)
+
+#else
+# define uodbc_module_ptr NULL
+
+#endif /* HAVE_UODBC || HAVE_DB2 */
+
+#endif /* _UNIFIED_ODBC_H */
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ */