Annotation of embedaddon/php/ext/odbc/php_odbc_includes.h, revision 1.1

1.1     ! misho       1: /*
        !             2:    +----------------------------------------------------------------------+
        !             3:    | PHP Version 5                                                        |
        !             4:    +----------------------------------------------------------------------+
        !             5:    | Copyright (c) 1997-2012 The PHP Group                                |
        !             6:    +----------------------------------------------------------------------+
        !             7:    | This source file is subject to version 3.01 of the PHP license,      |
        !             8:    | that is bundled with this package in the file LICENSE, and is        |
        !             9:    | available through the world-wide-web at the following url:           |
        !            10:    | http://www.php.net/license/3_01.txt                                  |
        !            11:    | If you did not receive a copy of the PHP license and are unable to   |
        !            12:    | obtain it through the world-wide-web, please send a note to          |
        !            13:    | license@php.net so we can mail you a copy immediately.               |
        !            14:    +----------------------------------------------------------------------+
        !            15:    | Authors: Stig Sæther Bakken <ssb@php.net>                            |
        !            16:    |          Andreas Karajannis <Andreas.Karajannis@gmd.de>              |
        !            17:    |         Kevin N. Shallow <kshallow@tampabay.rr.com> (Birdstep)      |
        !            18:    +----------------------------------------------------------------------+
        !            19: */
        !            20: 
        !            21: /* $Id: php_odbc_includes.h 321634 2012-01-01 13:15:04Z felipe $ */
        !            22: 
        !            23: #ifndef PHP_ODBC_INCLUDES_H
        !            24: #define PHP_ODBC_INCLUDES_H
        !            25: 
        !            26: #if HAVE_UODBC
        !            27: 
        !            28: #define ODBCVER 0x0250
        !            29: /*#ifndef MSVC5
        !            30: #define FAR
        !            31: #endif
        !            32: */
        !            33: 
        !            34: /* checking in the same order as in configure.in */
        !            35: 
        !            36: #if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35) /* Solid Server */
        !            37: 
        !            38: #define ODBC_TYPE "Solid"
        !            39: #if defined(HAVE_SOLID)
        !            40: # include <cli0core.h>
        !            41: # include <cli0ext1.h>
        !            42: # include <cli0env.h>
        !            43: #elif defined(HAVE_SOLID_30)
        !            44: # include <cli0cli.h>
        !            45: # include <cli0defs.h>
        !            46: # include <cli0env.h>
        !            47: #elif defined(HAVE_SOLID_35)
        !            48: # if !defined(PHP_WIN32)
        !            49: #  include <sqlunix.h>
        !            50: # endif                /* end: #if !defined(PHP_WIN32) */
        !            51: # include <sqltypes.h>
        !            52: # include <sqlucode.h>
        !            53: # include <sqlext.h>
        !            54: # include <sql.h>
        !            55: #endif /* end: #if defined(HAVE_SOLID) */
        !            56: #undef HAVE_SQL_EXTENDED_FETCH
        !            57: PHP_FUNCTION(solid_fetch_prev);
        !            58: #define SQLSMALLINT SWORD
        !            59: #define SQLUSMALLINT UWORD
        !            60: #ifndef SQL_SUCCEEDED
        !            61: #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
        !            62: #endif
        !            63: 
        !            64: #elif defined(HAVE_EMPRESS) /* Empress */
        !            65: 
        !            66: #define ODBC_TYPE "Empress"
        !            67: #include <sql.h>
        !            68: #include <sqlext.h>
        !            69: #undef HAVE_SQL_EXTENDED_FETCH
        !            70: 
        !            71: #elif defined(HAVE_ADABAS) /* Adabas D */
        !            72: 
        !            73: #define ODBC_TYPE "Adabas D"
        !            74: #include <WINDOWS.H>
        !            75: #include <sql.h>
        !            76: #include <sqlext.h>
        !            77: #define HAVE_SQL_EXTENDED_FETCH 1
        !            78: #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
        !            79: #define SQLINTEGER ULONG
        !            80: #define SQLUSMALLINT USHORT
        !            81: 
        !            82: #elif defined(HAVE_SAPDB) /* SAP DB */
        !            83: 
        !            84: #define ODBC_TYPE "SAP DB"
        !            85: #include <WINDOWS.H>
        !            86: #include <sql.h>
        !            87: #include <sqlext.h>
        !            88: #define HAVE_SQL_EXTENDED_FETCH 1
        !            89: #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
        !            90: 
        !            91: #elif defined(HAVE_IODBC) /* iODBC library */
        !            92: 
        !            93: #ifdef CHAR
        !            94: #undef CHAR
        !            95: #endif
        !            96: 
        !            97: #ifdef SQLCHAR
        !            98: #undef SQLCHAR
        !            99: #endif
        !           100: 
        !           101: #define ODBC_TYPE "iODBC"
        !           102: #include <sql.h>
        !           103: #include <sqlext.h>
        !           104: #include <iodbcext.h>
        !           105: #define HAVE_SQL_EXTENDED_FETCH 1
        !           106: 
        !           107: #elif defined(HAVE_UNIXODBC) /* unixODBC library */
        !           108: 
        !           109: #ifdef CHAR
        !           110: #undef CHAR
        !           111: #endif
        !           112: 
        !           113: #ifdef SQLCHAR
        !           114: #undef SQLCHAR
        !           115: #endif
        !           116: 
        !           117: #define ODBC_TYPE "unixODBC"
        !           118: #include <sql.h>
        !           119: #include <sqlext.h>
        !           120: #define HAVE_SQL_EXTENDED_FETCH 1
        !           121: 
        !           122: #elif defined(HAVE_ESOOB) /* Easysoft ODBC-ODBC Bridge library */
        !           123: 
        !           124: #define ODBC_TYPE "ESOOB"
        !           125: #include <sql.h>
        !           126: #include <sqlext.h>
        !           127: #define HAVE_SQL_EXTENDED_FETCH 1
        !           128: 
        !           129: #elif defined(HAVE_ODBC_ROUTER) /* ODBCRouter.com */
        !           130: 
        !           131: #ifdef CHAR
        !           132: #undef CHAR
        !           133: #endif
        !           134: 
        !           135: #ifdef SQLCHAR
        !           136: #undef SQLCHAR
        !           137: #endif
        !           138: 
        !           139: #define ODBC_TYPE "ODBCRouter"
        !           140: #include <odbcsdk.h>
        !           141: #undef HAVE_SQL_EXTENDED_FETCH
        !           142: 
        !           143: #elif defined(HAVE_OPENLINK) /* OpenLink ODBC drivers */
        !           144: 
        !           145: #define ODBC_TYPE "Openlink"
        !           146: #include <iodbc.h>
        !           147: #include <isql.h>
        !           148: #include <isqlext.h>
        !           149: #include <udbcext.h>
        !           150: #define HAVE_SQL_EXTENDED_FETCH 1
        !           151: #ifndef SQLSMALLINT
        !           152: #define SQLSMALLINT SWORD
        !           153: #endif
        !           154: #ifndef SQLUSMALLINT
        !           155: #define SQLUSMALLINT UWORD
        !           156: #endif
        !           157: 
        !           158: #elif defined(HAVE_BIRDSTEP) /* Raima Birdstep */
        !           159: 
        !           160: #define ODBC_TYPE "Birdstep"
        !           161: #define UNIX
        !           162: /*
        !           163:  * Extended Fetch in the Birdstep ODBC API is incapable of returning long varchar (memo) fields.
        !           164:  * So the following line has been commented-out to accomadate. - KNS
        !           165:  *
        !           166:  * #define HAVE_SQL_EXTENDED_FETCH 1
        !           167:  */
        !           168: #include <sql.h>
        !           169: #include <sqlext.h>
        !           170: #define SQLINTEGER SDWORD
        !           171: #define SQLSMALLINT SWORD
        !           172: #define SQLUSMALLINT UWORD
        !           173: 
        !           174: 
        !           175: #elif defined(HAVE_DBMAKER) /* DBMaker */
        !           176: 
        !           177: #define ODBC_TYPE "DBMaker"
        !           178: #undef ODBCVER
        !           179: #define ODBCVER 0x0300
        !           180: #define HAVE_SQL_EXTENDED_FETCH 1
        !           181: #include <odbc.h>
        !           182: 
        !           183: 
        !           184: #elif defined(HAVE_CODBC) /* Custom ODBC */
        !           185: 
        !           186: #define ODBC_TYPE "Custom ODBC"
        !           187: #define HAVE_SQL_EXTENDED_FETCH 1
        !           188: #include <odbc.h>
        !           189: 
        !           190: #elif defined(HAVE_IBMDB2) /* DB2 CLI */
        !           191: 
        !           192: #define ODBC_TYPE "IBM DB2 CLI"
        !           193: #define HAVE_SQL_EXTENDED_FETCH 1
        !           194: #include <sqlcli1.h>
        !           195: #ifdef DB268K
        !           196: /* Need to include ASLM for 68K applications */
        !           197: #include <LibraryManager.h>
        !           198: #endif
        !           199: 
        !           200: #else /* MS ODBC */
        !           201: 
        !           202: #define HAVE_SQL_EXTENDED_FETCH 1
        !           203: #include <WINDOWS.H>
        !           204: #include <sql.h>
        !           205: #include <sqlext.h>
        !           206: #endif
        !           207: 
        !           208: 
        !           209: /* Common defines */
        !           210: 
        !           211: #if defined( HAVE_IBMDB2 ) || defined( HAVE_UNIXODBC ) || defined (HAVE_IODBC)
        !           212: #define ODBC_SQL_ENV_T SQLHANDLE
        !           213: #define ODBC_SQL_CONN_T SQLHANDLE
        !           214: #define ODBC_SQL_STMT_T SQLHANDLE
        !           215: #elif defined( HAVE_SOLID_35 ) || defined( HAVE_SAPDB ) || defined ( HAVE_EMPRESS )
        !           216: #define ODBC_SQL_ENV_T SQLHENV
        !           217: #define ODBC_SQL_CONN_T SQLHDBC
        !           218: #define ODBC_SQL_STMT_T SQLHSTMT
        !           219: #else
        !           220: #define ODBC_SQL_ENV_T HENV
        !           221: #define ODBC_SQL_CONN_T HDBC
        !           222: #define ODBC_SQL_STMT_T HSTMT
        !           223: #endif
        !           224: 
        !           225: typedef struct odbc_connection {
        !           226:     ODBC_SQL_ENV_T henv;
        !           227:     ODBC_SQL_CONN_T hdbc;
        !           228:     char laststate[6];
        !           229:     char lasterrormsg[SQL_MAX_MESSAGE_LENGTH];
        !           230:        int id;
        !           231:        int persistent;
        !           232: } odbc_connection;
        !           233: 
        !           234: typedef struct odbc_result_value {
        !           235:        char name[32];
        !           236:        char *value;
        !           237:        SQLLEN vallen;
        !           238:        SQLLEN coltype;
        !           239: } odbc_result_value;
        !           240: 
        !           241: typedef struct odbc_result {
        !           242:        ODBC_SQL_STMT_T stmt;
        !           243:        odbc_result_value *values;
        !           244:        SQLSMALLINT numcols;
        !           245:        SQLSMALLINT numparams;
        !           246: # if HAVE_SQL_EXTENDED_FETCH
        !           247:        int fetch_abs;
        !           248: # endif
        !           249:        long longreadlen;
        !           250:        int binmode;
        !           251:        int fetched;
        !           252:        odbc_connection *conn_ptr;
        !           253: } odbc_result;
        !           254: 
        !           255: ZEND_BEGIN_MODULE_GLOBALS(odbc)
        !           256:        char *defDB;
        !           257:        char *defUser;
        !           258:        char *defPW;
        !           259:        long allow_persistent;
        !           260:        long check_persistent;
        !           261:        long max_persistent;
        !           262:        long max_links;
        !           263:        long num_persistent;
        !           264:        long num_links;
        !           265:        int defConn;
        !           266:     long defaultlrl;
        !           267:     long defaultbinmode;
        !           268:     long default_cursortype;
        !           269:     char laststate[6];
        !           270:     char lasterrormsg[SQL_MAX_MESSAGE_LENGTH];
        !           271:        HashTable *resource_list;
        !           272:        HashTable *resource_plist;
        !           273: ZEND_END_MODULE_GLOBALS(odbc)
        !           274: 
        !           275: int odbc_add_result(HashTable *list, odbc_result *result);
        !           276: odbc_result *odbc_get_result(HashTable *list, int count);
        !           277: void odbc_del_result(HashTable *list, int count);
        !           278: int odbc_add_conn(HashTable *list, HDBC conn);
        !           279: odbc_connection *odbc_get_conn(HashTable *list, int count);
        !           280: void odbc_del_conn(HashTable *list, int ind);
        !           281: int odbc_bindcols(odbc_result *result TSRMLS_DC);
        !           282: 
        !           283: #define ODBC_SQL_ERROR_PARAMS odbc_connection *conn_resource, ODBC_SQL_STMT_T stmt, char *func
        !           284: 
        !           285: void odbc_sql_error(ODBC_SQL_ERROR_PARAMS);
        !           286: 
        !           287: #define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR)
        !           288: #define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY)
        !           289: 
        !           290: #ifdef ZTS
        !           291: # define ODBCG(v) TSRMG(odbc_globals_id, zend_odbc_globals *, v)
        !           292: #else
        !           293: # define ODBCG(v) (odbc_globals.v)
        !           294: extern ZEND_API zend_odbc_globals odbc_globals;
        !           295: #endif
        !           296: 
        !           297: #endif /* HAVE_UODBC */
        !           298: #endif /* PHP_ODBC_INCLUDES_H */
        !           299: 
        !           300: /*
        !           301:  * Local variables:
        !           302:  * tab-width: 4
        !           303:  * c-basic-offset: 4
        !           304:  * End:
        !           305:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>