diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/mssql/php_mssql.h | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/mssql/php_mssql.h')
-rw-r--r-- | ext/mssql/php_mssql.h | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/ext/mssql/php_mssql.h b/ext/mssql/php_mssql.h new file mode 100644 index 0000000..b73c842 --- /dev/null +++ b/ext/mssql/php_mssql.h @@ -0,0 +1,214 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Author: Frank M. Kromann <frank@kromann.info> | + +----------------------------------------------------------------------+ + */ + + +/* $Id$ */ + +#ifndef PHP_MSSQL_H +#define PHP_MSSQL_H + + +#if HAVE_MSSQL +#define MSDBLIB + +/* FreeTDS checks for PHP_MSSQL_API for avoid type redefinition */ +#ifdef HAVE_FREETDS +#define PHP_MSSQL_API +#endif + +#include <sqlfront.h> +#include <sqldb.h> + +typedef short TDS_SHORT; +#ifdef HAVE_FREETDS +#define MSSQL_VERSION "FreeTDS" +#define SQLTEXT SYBTEXT +#define SQLCHAR SYBCHAR +#define SQLVARCHAR SYBVARCHAR +#define SQLINT1 SYBINT1 +#define SQLINT2 SYBINT2 +#define SQLINT4 SYBINT4 +#define SQLINTN SYBINTN +#define SQLBIT SYBBIT +#define SQLFLT4 SYBREAL +#define SQLFLT8 SYBFLT8 +#define SQLFLTN SYBFLTN +#define SQLDECIMAL SYBDECIMAL +#define SQLNUMERIC SYBNUMERIC +#define SQLDATETIME SYBDATETIME +#define SQLDATETIM4 SYBDATETIME4 +#define SQLDATETIMN SYBDATETIMN +#define SQLMONEY SYBMONEY +#define SQLMONEY4 SYBMONEY4 +#define SQLMONEYN SYBMONEYN +#define SQLIMAGE SYBIMAGE +#define SQLBINARY SYBBINARY +#define SQLVARBINARY SYBVARBINARY +#ifdef SQLUNIQUE /* FreeTSD 0.61+ */ +#define SQLUNIQUE SYBUNIQUE +#endif +#define DBERRHANDLE(a, b) dberrhandle(b) +#define DBMSGHANDLE(a, b) dbmsghandle(b) +#define DBSETOPT(a, b, c) dbsetopt(a, b, c, -1) +#define NO_MORE_RPC_RESULTS 3 +#ifndef dbfreelogin +#define dbfreelogin dbloginfree +#endif +#define dbrpcexec dbrpcsend +typedef unsigned char *LPBYTE; +typedef float DBFLT4; +#else +#define MSSQL_VERSION "7.0" +#define DBERRHANDLE(a, b) dbprocerrhandle(a, b) +#define DBMSGHANDLE(a, b) dbprocmsghandle(a, b) +#define EHANDLEFUNC DBERRHANDLE_PROC +#define MHANDLEFUNC DBMSGHANDLE_PROC +#define DBSETOPT(a, b, c) dbsetopt(a, b, c) +#endif + +#define coltype(j) dbcoltype(mssql_ptr->link,j) +#define intcol(i) ((int) *(DBINT *) dbdata(mssql_ptr->link,i)) +#define smallintcol(i) ((int) *(DBSMALLINT *) dbdata(mssql_ptr->link,i)) +#define tinyintcol(i) ((int) *(DBTINYINT *) dbdata(mssql_ptr->link,i)) +#define anyintcol(j) (coltype(j)==SQLINT4?intcol(j):(coltype(j)==SQLINT2?smallintcol(j):tinyintcol(j))) +#define charcol(i) ((DBCHAR *) dbdata(mssql_ptr->link,i)) +#define floatcol4(i) (*(DBFLT4 *) dbdata(mssql_ptr->link,i)) +#define floatcol8(i) (*(DBFLT8 *) dbdata(mssql_ptr->link,i)) + +#ifdef ZTS +#include "TSRM.h" +#endif + +extern zend_module_entry mssql_module_entry; +#define mssql_module_ptr &mssql_module_entry + +PHP_MINIT_FUNCTION(mssql); +PHP_MSHUTDOWN_FUNCTION(mssql); +PHP_RINIT_FUNCTION(mssql); +PHP_RSHUTDOWN_FUNCTION(mssql); +PHP_MINFO_FUNCTION(mssql); + +PHP_FUNCTION(mssql_connect); +PHP_FUNCTION(mssql_pconnect); +PHP_FUNCTION(mssql_close); +PHP_FUNCTION(mssql_select_db); +PHP_FUNCTION(mssql_query); +PHP_FUNCTION(mssql_fetch_batch); +PHP_FUNCTION(mssql_rows_affected); +PHP_FUNCTION(mssql_free_result); +PHP_FUNCTION(mssql_get_last_message); +PHP_FUNCTION(mssql_num_rows); +PHP_FUNCTION(mssql_num_fields); +PHP_FUNCTION(mssql_fetch_field); +PHP_FUNCTION(mssql_fetch_row); +PHP_FUNCTION(mssql_fetch_array); +PHP_FUNCTION(mssql_fetch_assoc); +PHP_FUNCTION(mssql_fetch_object); +PHP_FUNCTION(mssql_field_length); +PHP_FUNCTION(mssql_field_name); +PHP_FUNCTION(mssql_field_type); +PHP_FUNCTION(mssql_data_seek); +PHP_FUNCTION(mssql_field_seek); +PHP_FUNCTION(mssql_result); +PHP_FUNCTION(mssql_next_result); +PHP_FUNCTION(mssql_min_error_severity); +PHP_FUNCTION(mssql_min_message_severity); +PHP_FUNCTION(mssql_init); +PHP_FUNCTION(mssql_bind); +PHP_FUNCTION(mssql_execute); +PHP_FUNCTION(mssql_free_statement); +PHP_FUNCTION(mssql_guid_string); + +typedef struct mssql_link { + LOGINREC *login; + DBPROCESS *link; + int valid; +} mssql_link; + +typedef struct mssql_statement { + int id; + mssql_link *link; + HashTable *binds; + int executed; +} mssql_statement; + +typedef struct { + + zval *zval; + /* TODO: more data for special types (BLOBS, NUMERIC...) */ +} mssql_bind; + +ZEND_BEGIN_MODULE_GLOBALS(mssql) + long default_link; + long num_links,num_persistent; + long max_links,max_persistent; + zend_bool allow_persistent; + char *appname; + char *server_message; +#ifdef HAVE_FREETDS + char *charset; +#endif + long min_error_severity, min_message_severity; + long cfg_min_error_severity, cfg_min_message_severity; + long connect_timeout, timeout; + zend_bool compatability_mode; + void (*get_column_content)(mssql_link *mssql_ptr,int offset,zval *result,int column_type TSRMLS_DC); + long textsize, textlimit, batchsize; + zend_bool datetimeconvert; + HashTable *resource_list, *resource_plist; + zend_bool secure_connection; + long max_procs; +ZEND_END_MODULE_GLOBALS(mssql) + +#define MSSQL_ROWS_BLOCK 128 + +typedef struct mssql_field { + char *name,*column_source; + long max_length; + int numeric; + int type; +} mssql_field; + +typedef struct mssql_result { + zval **data; + mssql_field *fields; + mssql_link *mssql_ptr; + mssql_statement * statement; + int batchsize; + int lastresult; + int blocks_initialized; + int cur_row,cur_field; + int num_rows,num_fields,have_fields; +} mssql_result; + + +#ifdef ZTS +# define MS_SQL_G(v) TSRMG(mssql_globals_id, zend_mssql_globals *, v) +#else +# define MS_SQL_G(v) (mssql_globals.v) +#endif + +#else + +#define mssql_module_ptr NULL + +#endif /* HAVE_MSSQL */ + +#define phpext_mssql_ptr mssql_module_ptr + +#endif /* PHP_MSSQL_H */ |