Annotation of embedaddon/php/ext/pdo_odbc/php_pdo_odbc_int.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.0 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_0.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:   | Author: Wez Furlong <wez@php.net>                                    |
        !            16:   +----------------------------------------------------------------------+
        !            17: */
        !            18: 
        !            19: /* $Id: php_pdo_odbc_int.h 321634 2012-01-01 13:15:04Z felipe $ */
        !            20: 
        !            21: #ifdef PHP_WIN32
        !            22: # define PDO_ODBC_TYPE "Win32"
        !            23: #endif
        !            24: 
        !            25: #ifndef PDO_ODBC_TYPE
        !            26: # warning Please fix configure to give your ODBC libraries a name
        !            27: # define PDO_ODBC_TYPE "Unknown"
        !            28: #endif
        !            29: 
        !            30: /* {{{ Roll a dice, pick a header at random... */
        !            31: #if HAVE_SQLCLI1_H
        !            32: # include <sqlcli1.h>
        !            33: # if defined(DB268K) && HAVE_LIBRARYMANAGER_H
        !            34: #  include <LibraryManager.h>
        !            35: # endif
        !            36: #endif
        !            37: 
        !            38: #if HAVE_ODBC_H
        !            39: # include <odbc.h>
        !            40: #endif
        !            41: 
        !            42: #if HAVE_IODBC_H
        !            43: # include <iodbc.h>
        !            44: #endif
        !            45: 
        !            46: #if HAVE_SQLUNIX_H && !defined(PHP_WIN32)
        !            47: # include <sqlunix.h>
        !            48: #endif
        !            49: 
        !            50: #if HAVE_SQLTYPES_H
        !            51: # include <sqltypes.h>
        !            52: #endif
        !            53: 
        !            54: #if HAVE_SQLUCODE_H
        !            55: # include <sqlucode.h>
        !            56: #endif
        !            57: 
        !            58: #if HAVE_SQL_H
        !            59: # include <sql.h>
        !            60: #endif
        !            61: 
        !            62: #if HAVE_ISQL_H
        !            63: # include <isql.h>
        !            64: #endif
        !            65: 
        !            66: #if HAVE_SQLEXT_H
        !            67: # include <sqlext.h>
        !            68: #endif
        !            69: 
        !            70: #if HAVE_ISQLEXT_H
        !            71: # include <isqlext.h>
        !            72: #endif
        !            73: 
        !            74: #if HAVE_UDBCEXT_H
        !            75: # include <udbcext.h>
        !            76: #endif
        !            77: 
        !            78: #if HAVE_CLI0CORE_H
        !            79: # include <cli0core.h>
        !            80: #endif
        !            81: 
        !            82: #if HAVE_CLI0EXT1_H
        !            83: # include <cli0ext.h>
        !            84: #endif
        !            85: 
        !            86: #if HAVE_CLI0CLI_H
        !            87: # include <cli0cli.h>
        !            88: #endif
        !            89: 
        !            90: #if HAVE_CLI0DEFS_H
        !            91: # include <cli0defs.h>
        !            92: #endif
        !            93: 
        !            94: #if HAVE_CLI0ENV_H
        !            95: # include <cli0env.h>
        !            96: #endif
        !            97: 
        !            98: #if HAVE_ODBCSDK_H
        !            99: # include <odbcsdk.h>
        !           100: #endif
        !           101: 
        !           102: /* }}} */
        !           103: 
        !           104: /* {{{ Figure out the type for handles */
        !           105: #if !defined(HENV) && !defined(SQLHENV) && defined(SQLHANDLE)
        !           106: # define PDO_ODBC_HENV         SQLHANDLE
        !           107: # define PDO_ODBC_HDBC         SQLHANDLE
        !           108: # define PDO_ODBC_HSTMT                SQLHANDLE
        !           109: #elif !defined(HENV) && (defined(SQLHENV) || defined(DB2CLI_VER))
        !           110: # define PDO_ODBC_HENV         SQLHENV
        !           111: # define PDO_ODBC_HDBC         SQLHDBC
        !           112: # define PDO_ODBC_HSTMT                SQLHSTMT
        !           113: #else
        !           114: # define PDO_ODBC_HENV         HENV
        !           115: # define PDO_ODBC_HDBC         HDBC
        !           116: # define PDO_ODBC_HSTMT                HSTMT
        !           117: #endif
        !           118: /* }}} */
        !           119: 
        !           120: typedef struct {
        !           121:        char last_state[6];
        !           122:        char last_err_msg[SQL_MAX_MESSAGE_LENGTH];
        !           123:        SDWORD last_error;
        !           124:        const char *file, *what;
        !           125:        int line;
        !           126: } pdo_odbc_errinfo;
        !           127: 
        !           128: typedef struct {
        !           129:        PDO_ODBC_HENV   env;
        !           130:        PDO_ODBC_HDBC   dbc;
        !           131:        pdo_odbc_errinfo einfo;
        !           132:        unsigned assume_utf8:1;
        !           133:        unsigned _spare:31;
        !           134: } pdo_odbc_db_handle;
        !           135: 
        !           136: typedef struct {
        !           137:        char *data;
        !           138:        unsigned long datalen;
        !           139:        SQLLEN fetched_len;
        !           140:        SWORD   coltype;
        !           141:        char colname[128];
        !           142:        unsigned is_long;
        !           143:        unsigned is_unicode:1;
        !           144:        unsigned _spare:31;
        !           145: } pdo_odbc_column;
        !           146: 
        !           147: typedef struct {
        !           148:        PDO_ODBC_HSTMT  stmt;
        !           149:        pdo_odbc_column *cols;
        !           150:        pdo_odbc_db_handle *H;
        !           151:        pdo_odbc_errinfo einfo;
        !           152:        char *convbuf;
        !           153:        unsigned long convbufsize;
        !           154:        unsigned going_long:1;
        !           155:        unsigned assume_utf8:1;
        !           156:        unsigned _spare:30;
        !           157: } pdo_odbc_stmt;
        !           158: 
        !           159: typedef struct {
        !           160:        SQLINTEGER len;
        !           161:        SQLSMALLINT paramtype;
        !           162:        char *outbuf;
        !           163:        unsigned is_unicode:1;
        !           164:        unsigned _spare:31;
        !           165: } pdo_odbc_param;
        !           166:        
        !           167: extern pdo_driver_t pdo_odbc_driver;
        !           168: extern struct pdo_stmt_methods odbc_stmt_methods;
        !           169: 
        !           170: void pdo_odbc_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, PDO_ODBC_HSTMT statement, char *what, const char *file, int line TSRMLS_DC);
        !           171: #define pdo_odbc_drv_error(what)       pdo_odbc_error(dbh, NULL, SQL_NULL_HSTMT, what, __FILE__, __LINE__ TSRMLS_CC)
        !           172: #define pdo_odbc_stmt_error(what)      pdo_odbc_error(stmt->dbh, stmt, SQL_NULL_HSTMT, what, __FILE__, __LINE__ TSRMLS_CC)
        !           173: #define pdo_odbc_doer_error(what)      pdo_odbc_error(dbh, NULL, stmt, what, __FILE__, __LINE__ TSRMLS_CC)
        !           174: 
        !           175: void pdo_odbc_init_error_table(void);
        !           176: void pdo_odbc_fini_error_table(void);
        !           177: 
        !           178: #ifdef SQL_ATTR_CONNECTION_POOLING
        !           179: extern SQLUINTEGER pdo_odbc_pool_on;
        !           180: extern SQLUINTEGER pdo_odbc_pool_mode;
        !           181: #endif
        !           182: 
        !           183: enum {
        !           184:        PDO_ODBC_ATTR_USE_CURSOR_LIBRARY = PDO_ATTR_DRIVER_SPECIFIC,
        !           185:        PDO_ODBC_ATTR_ASSUME_UTF8 /* assume that input strings are UTF-8 when feeding data to unicode columns */
        !           186: };
        !           187: 
        !           188: /*
        !           189:  * Local variables:
        !           190:  * tab-width: 4
        !           191:  * c-basic-offset: 4
        !           192:  * End:
        !           193:  * vim600: noet sw=4 ts=4 fdm=marker
        !           194:  * vim<600: noet sw=4 ts=4
        !           195:  */

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