1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #ifndef PHP_PDO_DBLIB_INT_H
23 #define PHP_PDO_DBLIB_INT_H
24
25 #ifndef PDO_DBLIB_FLAVOUR
26 # define PDO_DBLIB_FLAVOUR "Generic DB-lib"
27 #endif
28
29 #if PHP_DBLIB_IS_MSSQL
30 # include <sqlfront.h>
31 # include <sqldb.h>
32
33 # define DBERRHANDLE(a, b) dbprocerrhandle(a, b)
34 # define DBMSGHANDLE(a, b) dbprocmsghandle(a, b)
35 # define EHANDLEFUNC DBERRHANDLE_PROC
36 # define MHANDLEFUNC DBMSGHANDLE_PROC
37 # define DBSETOPT(a, b, c) dbsetopt(a, b, c)
38 # define SYBESMSG SQLESMSG
39 # define SYBESEOF SQLESEOF
40 # define SYBEFCON SQLECONN
41 # define SYBEMEM SQLEMEM
42 # define SYBEPWD SQLEPWD
43
44 #else
45 # include <sybfront.h>
46 # include <sybdb.h>
47 # include <syberror.h>
48
49
50 # define SQLTEXT SYBTEXT
51 # define SQLCHAR SYBCHAR
52 # define SQLVARCHAR SYBVARCHAR
53 # define SQLINT1 SYBINT1
54 # define SQLINT2 SYBINT2
55 # define SQLINT4 SYBINT4
56 # define SQLINTN SYBINTN
57 # define SQLBIT SYBBIT
58 # define SQLFLT4 SYBREAL
59 # define SQLFLT8 SYBFLT8
60 # define SQLFLTN SYBFLTN
61 # define SQLDECIMAL SYBDECIMAL
62 # define SQLNUMERIC SYBNUMERIC
63 # define SQLDATETIME SYBDATETIME
64 # define SQLDATETIM4 SYBDATETIME4
65 # define SQLDATETIMN SYBDATETIMN
66 # define SQLMONEY SYBMONEY
67 # define SQLMONEY4 SYBMONEY4
68 # define SQLMONEYN SYBMONEYN
69 # define SQLIMAGE SYBIMAGE
70 # define SQLBINARY SYBBINARY
71 # define SQLVARBINARY SYBVARBINARY
72 # ifdef SYBUNIQUE
73 # define SQLUNIQUE SYBUNIQUE
74 #else
75 # define SQLUNIQUE 36
76 # endif
77
78 # define DBERRHANDLE(a, b) dberrhandle(b)
79 # define DBMSGHANDLE(a, b) dbmsghandle(b)
80 # define DBSETOPT(a, b, c) dbsetopt(a, b, c, -1)
81 # define NO_MORE_RPC_RESULTS 3
82 # define dbfreelogin dbloginfree
83 # define dbrpcexec dbrpcsend
84
85 typedef short TDS_SHORT;
86 # ifndef PHP_WIN32
87 typedef unsigned char *LPBYTE;
88 # endif
89 typedef float DBFLT4;
90 #endif
91
92 int pdo_dblib_error_handler(DBPROCESS *dbproc, int severity, int dberr,
93 int oserr, char *dberrstr, char *oserrstr);
94
95 int pdo_dblib_msg_handler(DBPROCESS *dbproc, DBINT msgno, int msgstate,
96 int severity, char *msgtext, char *srvname, char *procname, DBUSMALLINT line);
97
98 extern pdo_driver_t pdo_dblib_driver;
99 extern struct pdo_stmt_methods dblib_stmt_methods;
100
101 typedef struct {
102 int severity;
103 int oserr;
104 int dberr;
105 char *oserrstr;
106 char *dberrstr;
107 char *sqlstate;
108 char *lastmsg;
109 } pdo_dblib_err;
110
111 typedef struct {
112 LOGINREC *login;
113 DBPROCESS *link;
114
115 pdo_dblib_err err;
116 } pdo_dblib_db_handle;
117
118 typedef struct {
119 pdo_dblib_db_handle *H;
120 pdo_dblib_err err;
121 } pdo_dblib_stmt;
122
123 typedef struct {
124 const char* key;
125 int value;
126 } pdo_dblib_keyval;
127
128
129 ZEND_BEGIN_MODULE_GLOBALS(dblib)
130 pdo_dblib_err err;
131 char sqlstate[6];
132 ZEND_END_MODULE_GLOBALS(dblib)
133
134 #ifdef ZTS
135 # define DBLIB_G(v) TSRMG(dblib_globals_id, zend_dblib_globals *, v)
136 #else
137 # define DBLIB_G(v) (dblib_globals.v)
138 #endif
139
140 ZEND_EXTERN_MODULE_GLOBALS(dblib)
141
142 #endif
143