File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / mssql / php_mssql.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:40 2012 UTC (12 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_17p0, HEAD
php 5.4.3+patches

    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.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: Frank M. Kromann <frank@kromann.info>                        |
   16:    +----------------------------------------------------------------------+
   17:  */
   18: 
   19: 
   20: /* $Id: php_mssql.h,v 1.1.1.2 2012/05/29 12:34:40 misho Exp $ */
   21: 
   22: #ifndef PHP_MSSQL_H
   23: #define PHP_MSSQL_H
   24: 
   25: 
   26: #if HAVE_MSSQL
   27: #define MSDBLIB
   28: 
   29: /* FreeTDS checks for PHP_MSSQL_API for avoid type redefinition */
   30: #ifdef HAVE_FREETDS
   31: #define PHP_MSSQL_API
   32: #endif
   33: 
   34: #include <sqlfront.h>
   35: #include <sqldb.h>
   36: 
   37: typedef short TDS_SHORT;
   38: #ifdef HAVE_FREETDS
   39: #define MSSQL_VERSION "FreeTDS"
   40: #define SQLTEXT SYBTEXT
   41: #define SQLCHAR SYBCHAR
   42: #define SQLVARCHAR SYBVARCHAR
   43: #define SQLINT1 SYBINT1
   44: #define SQLINT2 SYBINT2
   45: #define SQLINT4 SYBINT4
   46: #define SQLINTN SYBINTN
   47: #define SQLBIT SYBBIT
   48: #define SQLFLT4 SYBREAL
   49: #define SQLFLT8 SYBFLT8
   50: #define SQLFLTN SYBFLTN
   51: #define SQLDECIMAL SYBDECIMAL
   52: #define SQLNUMERIC SYBNUMERIC
   53: #define SQLDATETIME SYBDATETIME
   54: #define SQLDATETIM4 SYBDATETIME4
   55: #define SQLDATETIMN SYBDATETIMN
   56: #define SQLMONEY SYBMONEY
   57: #define SQLMONEY4 SYBMONEY4
   58: #define SQLMONEYN SYBMONEYN
   59: #define SQLIMAGE SYBIMAGE
   60: #define SQLBINARY SYBBINARY
   61: #define SQLVARBINARY SYBVARBINARY
   62: #ifdef SQLUNIQUE /* FreeTSD 0.61+ */
   63: #define SQLUNIQUE SYBUNIQUE
   64: #endif
   65: #define DBERRHANDLE(a, b) dberrhandle(b)
   66: #define DBMSGHANDLE(a, b) dbmsghandle(b)
   67: #define DBSETOPT(a, b, c) dbsetopt(a, b, c, -1)
   68: #define NO_MORE_RPC_RESULTS 3
   69: #ifndef dbfreelogin
   70: #define dbfreelogin dbloginfree
   71: #endif
   72: #define dbrpcexec dbrpcsend
   73: typedef unsigned char	*LPBYTE;
   74: typedef float           DBFLT4;
   75: #else
   76: #define MSSQL_VERSION "7.0"
   77: #define DBERRHANDLE(a, b) dbprocerrhandle(a, b)
   78: #define DBMSGHANDLE(a, b) dbprocmsghandle(a, b)
   79: #define EHANDLEFUNC DBERRHANDLE_PROC
   80: #define MHANDLEFUNC DBMSGHANDLE_PROC
   81: #define DBSETOPT(a, b, c) dbsetopt(a, b, c)
   82: #endif
   83: 
   84: #define coltype(j) dbcoltype(mssql_ptr->link,j)
   85: #define intcol(i) ((int) *(DBINT *) dbdata(mssql_ptr->link,i))
   86: #define smallintcol(i) ((int) *(DBSMALLINT *) dbdata(mssql_ptr->link,i))
   87: #define tinyintcol(i) ((int) *(DBTINYINT *) dbdata(mssql_ptr->link,i))
   88: #define anyintcol(j) (coltype(j)==SQLINT4?intcol(j):(coltype(j)==SQLINT2?smallintcol(j):tinyintcol(j)))
   89: #define charcol(i) ((DBCHAR *) dbdata(mssql_ptr->link,i))
   90: #define floatcol4(i) (*(DBFLT4 *) dbdata(mssql_ptr->link,i))
   91: #define floatcol8(i) (*(DBFLT8 *) dbdata(mssql_ptr->link,i))
   92: 
   93: #ifdef ZTS
   94: #include "TSRM.h"
   95: #endif
   96: 
   97: extern zend_module_entry mssql_module_entry;
   98: #define mssql_module_ptr &mssql_module_entry
   99: 
  100: PHP_MINIT_FUNCTION(mssql);
  101: PHP_MSHUTDOWN_FUNCTION(mssql);
  102: PHP_RINIT_FUNCTION(mssql);
  103: PHP_RSHUTDOWN_FUNCTION(mssql);
  104: PHP_MINFO_FUNCTION(mssql);
  105: 
  106: PHP_FUNCTION(mssql_connect);
  107: PHP_FUNCTION(mssql_pconnect);
  108: PHP_FUNCTION(mssql_close);
  109: PHP_FUNCTION(mssql_select_db);
  110: PHP_FUNCTION(mssql_query);
  111: PHP_FUNCTION(mssql_fetch_batch);
  112: PHP_FUNCTION(mssql_rows_affected);
  113: PHP_FUNCTION(mssql_free_result);
  114: PHP_FUNCTION(mssql_get_last_message);
  115: PHP_FUNCTION(mssql_num_rows);
  116: PHP_FUNCTION(mssql_num_fields);
  117: PHP_FUNCTION(mssql_fetch_field);
  118: PHP_FUNCTION(mssql_fetch_row);
  119: PHP_FUNCTION(mssql_fetch_array);
  120: PHP_FUNCTION(mssql_fetch_assoc);
  121: PHP_FUNCTION(mssql_fetch_object);
  122: PHP_FUNCTION(mssql_field_length);
  123: PHP_FUNCTION(mssql_field_name);
  124: PHP_FUNCTION(mssql_field_type);
  125: PHP_FUNCTION(mssql_data_seek);
  126: PHP_FUNCTION(mssql_field_seek);
  127: PHP_FUNCTION(mssql_result);
  128: PHP_FUNCTION(mssql_next_result);
  129: PHP_FUNCTION(mssql_min_error_severity);
  130: PHP_FUNCTION(mssql_min_message_severity);
  131: PHP_FUNCTION(mssql_init);
  132: PHP_FUNCTION(mssql_bind);
  133: PHP_FUNCTION(mssql_execute);
  134: PHP_FUNCTION(mssql_free_statement);
  135: PHP_FUNCTION(mssql_guid_string);
  136: 
  137: typedef struct mssql_link {
  138: 	LOGINREC *login;
  139: 	DBPROCESS *link;
  140: 	int valid;
  141: } mssql_link;
  142: 
  143: typedef struct mssql_statement {
  144: 	int id;
  145: 	mssql_link *link;
  146: 	HashTable *binds;
  147: 	int executed;
  148: } mssql_statement;
  149: 
  150: typedef struct {
  151: 	
  152: 	zval *zval;
  153: 	/* TODO: more data for special types (BLOBS, NUMERIC...) */
  154: } mssql_bind;
  155: 
  156: ZEND_BEGIN_MODULE_GLOBALS(mssql)
  157: 	long default_link;
  158: 	long num_links,num_persistent;
  159: 	long max_links,max_persistent;
  160: 	zend_bool allow_persistent;
  161: 	char *appname;
  162: 	char *server_message;
  163: #ifdef HAVE_FREETDS
  164: 	char *charset;
  165: #endif
  166: 	long min_error_severity, min_message_severity;
  167: 	long cfg_min_error_severity, cfg_min_message_severity;
  168: 	long connect_timeout, timeout;
  169: 	zend_bool compatability_mode;
  170: 	void (*get_column_content)(mssql_link *mssql_ptr,int offset,zval *result,int column_type  TSRMLS_DC);
  171: 	long textsize, textlimit, batchsize;
  172: 	zend_bool datetimeconvert;
  173: 	HashTable *resource_list, *resource_plist;
  174: 	zend_bool secure_connection;
  175: 	long max_procs;
  176: ZEND_END_MODULE_GLOBALS(mssql)
  177: 
  178: #define MSSQL_ROWS_BLOCK 128
  179: 
  180: typedef struct mssql_field {
  181: 	char *name,*column_source;
  182: 	long max_length; 
  183: 	int numeric;
  184: 	int type;
  185: } mssql_field;
  186: 
  187: typedef struct mssql_result {
  188: 	zval **data;
  189: 	mssql_field *fields;
  190: 	mssql_link *mssql_ptr;
  191: 	mssql_statement * statement;
  192: 	int batchsize;
  193: 	int lastresult;
  194: 	int blocks_initialized;
  195: 	int cur_row,cur_field;
  196: 	int num_rows,num_fields,have_fields;
  197: } mssql_result;
  198: 
  199: 
  200: #ifdef ZTS
  201: # define MS_SQL_G(v) TSRMG(mssql_globals_id, zend_mssql_globals *, v)
  202: #else
  203: # define MS_SQL_G(v)	(mssql_globals.v)
  204: #endif
  205: 
  206: #else
  207: 
  208: #define mssql_module_ptr NULL
  209: 
  210: #endif /* HAVE_MSSQL */
  211: 
  212: #define phpext_mssql_ptr mssql_module_ptr
  213: 
  214: #endif /* PHP_MSSQL_H */

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