Annotation of embedaddon/php/ext/pdo_firebird/php_pdo_firebird_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.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: | Author: Ard Biesheuvel <abies@php.net> |
16: +----------------------------------------------------------------------+
17: */
18:
19: #ifndef PHP_PDO_FIREBIRD_INT_H
20: #define PHP_PDO_FIREBIRD_INT_H
21:
22: #include <ibase.h>
23:
24: #ifdef SQLDA_VERSION
25: #define PDO_FB_SQLDA_VERSION SQLDA_VERSION
26: #else
27: #define PDO_FB_SQLDA_VERSION 1
28: #endif
29:
30: #define PDO_FB_DIALECT 3
31:
32: #define PDO_FB_DEF_DATE_FMT "%Y-%m-%d"
33: #define PDO_FB_DEF_TIME_FMT "%H:%M:%S"
34: #define PDO_FB_DEF_TIMESTAMP_FMT PDO_FB_DEF_DATE_FMT " " PDO_FB_DEF_TIME_FMT
35:
36: #define SHORT_MAX (1 << (8*sizeof(short)-1))
37:
38: #if SIZEOF_LONG == 8
39: # define LL_MASK "l"
40: # define LL_LIT(lit) lit ## L
41: #else
42: # ifdef PHP_WIN32
43: # define LL_MASK "I64"
44: # define LL_LIT(lit) lit ## I64
45: # else
46: # define LL_MASK "ll"
47: # define LL_LIT(lit) lit ## LL
48: # endif
49: #endif
50:
51: /* Firebird API has a couple of missing const decls in its API */
52: #define const_cast(s) ((char*)(s))
53:
54: #ifdef PHP_WIN32
55: typedef void (__stdcall *info_func_t)(char*);
56: #else
57: typedef void (*info_func_t)(char*);
58: #endif
59:
60: #ifndef min
61: #define min(a,b) ((a)<(b)?(a):(b))
62: #endif
63:
64: typedef struct {
65:
66: /* the result of the last API call */
67: ISC_STATUS isc_status[20];
68:
69: /* the connection handle */
70: isc_db_handle db;
71:
72: /* the transaction handle */
73: isc_tr_handle tr;
74:
75: /* the last error that didn't come from the API */
76: char const *last_app_error;
77:
78: /* date and time format strings, can be set by the set_attribute method */
79: char *date_format;
80: char *time_format;
81: char *timestamp_format;
82:
83: /* prepend table names on column names in fetch */
84: unsigned fetch_table_names:1;
85:
86: unsigned _reserved:31;
87:
88: } pdo_firebird_db_handle;
89:
90:
91: typedef struct {
92:
93: /* the link that owns this statement */
94: pdo_firebird_db_handle *H;
95:
96: /* the statement handle */
97: isc_stmt_handle stmt;
98:
99: /* the name of the cursor (if it has one) */
100: char name[32];
101:
102: /* the type of statement that was issued */
103: char statement_type:8;
104:
105: /* whether EOF was reached for this statement */
106: unsigned exhausted:1;
107:
108: /* successful isc_dsql_execute opens a cursor */
109: unsigned cursor_open:1;
110:
111: unsigned _reserved:22;
112:
113: /* the named params that were converted to ?'s by the driver */
114: HashTable *named_params;
115:
116: /* allocated space to convert fields values to other types */
117: char **fetch_buf;
118:
119: /* the input SQLDA */
120: XSQLDA *in_sqlda;
121:
122: /* the output SQLDA */
123: XSQLDA out_sqlda; /* last member */
124:
125: } pdo_firebird_stmt;
126:
127: extern pdo_driver_t pdo_firebird_driver;
128:
129: extern struct pdo_stmt_methods firebird_stmt_methods;
130:
131: void _firebird_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, char const *file, long line TSRMLS_DC);
132:
133: enum {
134: PDO_FB_ATTR_DATE_FORMAT = PDO_ATTR_DRIVER_SPECIFIC,
135: PDO_FB_ATTR_TIME_FORMAT,
136: PDO_FB_ATTR_TIMESTAMP_FORMAT,
137: };
138:
139: #endif /* PHP_PDO_FIREBIRD_INT_H */
140:
141: /*
142: * Local variables:
143: * tab-width: 4
144: * c-basic-offset: 4
145: * End:
146: * vim600: noet sw=4 ts=4 fdm=marker
147: * vim<600: noet sw=4 ts=4
148: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>