19#ifndef PHP_ODBC_INCLUDES_H
20#define PHP_ODBC_INCLUDES_H
26#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35)
28#define ODBC_TYPE "Solid"
29#if defined(HAVE_SOLID)
33#elif defined(HAVE_SOLID_30)
37#elif defined(HAVE_SOLID_35)
44#undef HAVE_SQL_EXTENDED_FETCH
45#define SQLSMALLINT SWORD
46#define SQLUSMALLINT UWORD
48#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
51#elif defined(HAVE_EMPRESS)
53#define ODBC_TYPE "Empress"
56#undef HAVE_SQL_EXTENDED_FETCH
58#elif defined(HAVE_ADABAS)
60#define ODBC_TYPE "Adabas D"
64#define HAVE_SQL_EXTENDED_FETCH 1
65#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
66#define SQLINTEGER ULONG
67#define SQLUSMALLINT USHORT
69#elif defined(HAVE_SAPDB)
71#define ODBC_TYPE "SAP DB"
75#define HAVE_SQL_EXTENDED_FETCH 1
76#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
78#elif defined(HAVE_IODBC)
88#define ODBC_TYPE "iODBC"
92#define HAVE_SQL_EXTENDED_FETCH 1
94#elif defined(HAVE_UNIXODBC)
104#define ODBC_TYPE "unixODBC"
108#define HAVE_SQL_EXTENDED_FETCH 1
110#elif defined(HAVE_ESOOB)
112#define ODBC_TYPE "ESOOB"
115#define HAVE_SQL_EXTENDED_FETCH 1
117#elif defined(HAVE_OPENLINK)
119#define ODBC_TYPE "Openlink"
124#define HAVE_SQL_EXTENDED_FETCH 1
126#define SQLSMALLINT SWORD
129#define SQLUSMALLINT UWORD
132#elif defined(HAVE_DBMAKER)
134#define ODBC_TYPE "DBMaker"
136#define ODBCVER 0x0300
137#define HAVE_SQL_EXTENDED_FETCH 1
141#elif defined(HAVE_CODBC)
143#define ODBC_TYPE "Custom ODBC"
144#define HAVE_SQL_EXTENDED_FETCH 1
147#elif defined(HAVE_IBMDB2)
149#define ODBC_TYPE "IBM DB2 CLI"
150#define HAVE_SQL_EXTENDED_FETCH 1
154#include <LibraryManager.h>
159#define HAVE_SQL_EXTENDED_FETCH 1
168#define ODBC_TYPE "Win32"
169#define PHP_ODBC_TYPE ODBC_TYPE
175#if defined( HAVE_IBMDB2 ) || defined( HAVE_UNIXODBC ) || defined (HAVE_IODBC)
176#define ODBC_SQL_ENV_T SQLHANDLE
177#define ODBC_SQL_CONN_T SQLHANDLE
178#define ODBC_SQL_STMT_T SQLHANDLE
179#elif defined( HAVE_SOLID_35 ) || defined( HAVE_SAPDB ) || defined ( HAVE_EMPRESS )
180#define ODBC_SQL_ENV_T SQLHENV
181#define ODBC_SQL_CONN_T SQLHDBC
182#define ODBC_SQL_STMT_T SQLHSTMT
184#define ODBC_SQL_ENV_T HENV
185#define ODBC_SQL_CONN_T HDBC
186#define ODBC_SQL_STMT_T HSTMT
189typedef struct odbc_connection {
191 ODBC_SQL_CONN_T hdbc;
193 char lasterrormsg[SQL_MAX_MESSAGE_LENGTH];
197typedef struct odbc_link {
198 odbc_connection *connection;
204typedef struct odbc_result_value {
211typedef struct odbc_param_info {
214 SQLSMALLINT nullable;
219 ODBC_SQL_STMT_T stmt;
220 odbc_result_value *values;
222 SQLSMALLINT numparams;
223# ifdef HAVE_SQL_EXTENDED_FETCH
229 odbc_param_info *param_info;
230 odbc_connection *conn_ptr;
237 bool check_persistent;
247 char lasterrormsg[SQL_MAX_MESSAGE_LENGTH];
260int odbc_add_conn(
HashTable *list, HDBC conn);
262void odbc_del_conn(
HashTable *list,
int ind);
265#define ODBC_SQL_ERROR_PARAMS odbc_connection *conn_resource, ODBC_SQL_STMT_T stmt, char *func
267void odbc_sql_error(ODBC_SQL_ERROR_PARAMS);
269#if defined(ODBCVER) && (ODBCVER >= 0x0300)
270#define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR || x == SQL_WLONGVARCHAR)
272#define PHP_ODBC_SQLCOLATTRIBUTE SQLColAttribute
273#define PHP_ODBC_SQLALLOCSTMT(hdbc, phstmt) SQLAllocHandle(SQL_HANDLE_STMT, hdbc, phstmt)
275#define PHP_ODBC_SQL_DESC_NAME SQL_DESC_NAME
277#define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR)
279#define PHP_ODBC_SQLCOLATTRIBUTE SQLColAttributes
280#define PHP_ODBC_SQLALLOCSTMT SQLAllocStmt
282#define PHP_ODBC_SQL_DESC_NAME SQL_COLUMN_NAME
284#define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY)
287#define ODBCG(v) ZEND_MODULE_GLOBALS_ACCESSOR(odbc, v)
289#if defined(ZTS) && defined(COMPILE_DL_ODBC)
count(Countable|array $value, int $mode=COUNT_NORMAL)
hash(string $algo, string $data, bool $binary=false, array $options=[])
odbc_result(Odbc\Result $statement, string|int $field)
#define ZEND_TSRMLS_CACHE_EXTERN()
#define ZEND_END_MODULE_GLOBALS(module_name)
#define ZEND_EXTERN_MODULE_GLOBALS(module_name)
#define ZEND_BEGIN_MODULE_GLOBALS(module_name)
struct _zend_string zend_string
struct _zend_object zend_object
struct _zend_array HashTable