Annotation of embedaddon/php/ext/pdo_odbc/php_pdo_odbc_int.h, revision 1.1.1.4

1.1       misho       1: /*
                      2:   +----------------------------------------------------------------------+
                      3:   | PHP Version 5                                                        |
                      4:   +----------------------------------------------------------------------+
1.1.1.4 ! misho       5:   | Copyright (c) 1997-2014 The PHP Group                                |
1.1       misho       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: 
1.1.1.2   misho      19: /* $Id$ */
1.1       misho      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>