mirror of
https://github.com/php/php-src.git
synced 2024-12-02 14:24:10 +08:00
160 lines
4.5 KiB
C
160 lines
4.5 KiB
C
/*
|
|
+----------------------------------------------------------------------+
|
|
| PHP Version 4 |
|
|
+----------------------------------------------------------------------+
|
|
| Copyright (c) 1997-2002 The PHP Group |
|
|
+----------------------------------------------------------------------+
|
|
| This source file is subject to version 2.02 of the PHP license, |
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
| available at through the world-wide-web at |
|
|
| http://www.php.net/license/2_02.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. |
|
|
+----------------------------------------------------------------------+
|
|
| Authors: Frank M. Kromann <frank@frontbase.com> |
|
|
+----------------------------------------------------------------------+
|
|
*/
|
|
|
|
|
|
/* $Id$ */
|
|
|
|
#ifndef PHP_MSSQL_H
|
|
#define PHP_MSSQL_H
|
|
|
|
|
|
#if HAVE_MSSQL
|
|
#ifdef PHP_WIN32
|
|
#define PHP_MSSQL_API __declspec(dllexport)
|
|
#else
|
|
#define PHP_MSSQL_API
|
|
#endif
|
|
|
|
|
|
#define MSSQL_VERSION "7.0"
|
|
#include "sqlfront.h"
|
|
#include "sqldb.h"
|
|
|
|
#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 floatcol(i) ((float) *(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_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;
|
|
long allow_persistent;
|
|
char *appname;
|
|
char *server_message;
|
|
long min_error_severity, min_message_severity;
|
|
long cfg_min_error_severity, cfg_min_message_severity;
|
|
long compatability_mode, connect_timeout, timeout;
|
|
void (*get_column_content)(mssql_link *mssql_ptr,int offset,pval *result,int column_type TSRMLS_DC);
|
|
long textsize, textlimit, batchsize;
|
|
long datetimeconvert;
|
|
HashTable *resource_list, *resource_plist;
|
|
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 {
|
|
pval **data;
|
|
mssql_field *fields;
|
|
mssql_link *mssql_ptr;
|
|
int batchsize;
|
|
int lastresult;
|
|
int blocks_initialized;
|
|
int cur_row,cur_field;
|
|
int num_rows,num_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 */
|