1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 5 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1997-2014 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 | Author: Wez Furlong <wez@php.net> | 16 | Frank M. Kromann <frank@kromann.info> | 17 +----------------------------------------------------------------------+ 18 */ 19 20 /* $Id$ */ 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 // SQLEFCON does not exist in MS SQL Server. 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 /* alias some types */ 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 /* FreeTDS Hack */ 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 error_handler(DBPROCESS *dbproc, int severity, int dberr, 93 int oserr, char *dberrstr, char *oserrstr); 94 95 int 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 144