summaryrefslogtreecommitdiff
path: root/ext/oci8/php_oci8.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/oci8/php_oci8.h')
-rw-r--r--ext/oci8/php_oci8.h208
1 files changed, 208 insertions, 0 deletions
diff --git a/ext/oci8/php_oci8.h b/ext/oci8/php_oci8.h
new file mode 100644
index 0000000000..3df40bcdd0
--- /dev/null
+++ b/ext/oci8/php_oci8.h
@@ -0,0 +1,208 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP HTML Embedded Scripting Language Version 3.0 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-1999 PHP Development Team (See Credits file) |
+ +----------------------------------------------------------------------+
+ | This program is free software; you can redistribute it and/or modify |
+ | it under the terms of one of the following licenses: |
+ | |
+ | A) the GNU General Public License as published by the Free Software |
+ | Foundatbion; either version 2 of the License, or (at your option) |
+ | any later version. |
+ | |
+ | B) the PHP License as published by the PHP Development Team and |
+ | included in the distribution in the file: LICENSE |
+ | |
+ | This program is distributed in the hope that it will be useful, |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ | GNU General Public License for more details. |
+ | |
+ | You should have received a copy of both licenses referred to here. |
+ | If you did not, or have any questions about PHP licensing, please |
+ | contact core@php.net. |
+ +----------------------------------------------------------------------+
+ | Authors: Stig Sæther Bakken <ssb@fast.no> |
+ | Thies C. Arntzen <thies@digicol.de> |
+ | |
+ | Initial work sponsored by Thies Arntzen <thies@digicol.de> of |
+ | Digital Collections, http://www.digicol.de/ |
+ +----------------------------------------------------------------------+
+ */
+
+/* $Id */
+
+#if HAVE_OCI8
+# ifndef _PHP_OCI8_H
+# define _PHP_OCI8_H
+# endif
+
+# if (defined(__osf__) && defined(__alpha))
+# ifndef A_OSF
+# define A_OSF
+# endif
+# ifndef OSF1
+# define OSF1
+# endif
+# ifndef _INTRINSICS
+# define _INTRINSICS
+# endif
+# endif /* osf alpha */
+
+#if WIN32||WINNT
+#define PHP_OCI_API __declspec(dllexport)
+#else
+#define PHP_OCI_API
+#endif
+
+#include <oci.h>
+
+typedef struct {
+ int num;
+ int persistent;
+ int open;
+ char *dbname;
+ OCIServer *pServer;
+ OCIFocbkStruct failover;
+} oci_server;
+
+typedef struct {
+ int num;
+ int persistent;
+ int open;
+ oci_server *server;
+ OCISession *pSession;
+} oci_session;
+
+typedef struct {
+ int id;
+ int open;
+ oci_session *session;
+ OCISvcCtx *pServiceContext;
+ sword error;
+ OCIError *pError;
+ HashTable *descriptors;
+ int descriptors_count;
+} oci_connection;
+
+typedef struct {
+ dvoid *ocidescr;
+ ub4 type;
+} oci_descriptor;
+
+typedef struct {
+ pval *pval;
+ text *name;
+ ub4 name_len;
+ ub4 type;
+} oci_define;
+
+typedef struct {
+ int id;
+ oci_connection *conn;
+ sword error;
+ OCIError *pError;
+ OCIStmt *pStmt;
+ char *last_query;
+ HashTable *columns;
+ int ncolumns;
+ HashTable *binds;
+ HashTable *defines;
+ int executed;
+} oci_statement;
+
+typedef struct {
+ OCIBind *pBind;
+ pval *value;
+ dvoid *descr; /* used for binding of LOBS etc */
+ OCIStmt *pStmt; /* used for binding REFCURSORs */
+ ub4 maxsize;
+ sb2 indicator;
+ ub2 retcode;
+} oci_bind;
+
+typedef struct {
+ oci_statement *statement;
+ OCIDefine *pDefine;
+ char *name;
+ ub4 name_len;
+ ub2 data_type;
+ ub2 data_size;
+ ub4 storage_size4;
+ sb2 indicator;
+ ub2 retcode;
+ ub2 retlen;
+ ub4 retlen4;
+ ub2 is_descr;
+ ub2 is_cursor;
+ int descr;
+ oci_descriptor *pdescr;
+ oci_statement *pstmt;
+ int stmtid;
+ void *data;
+ oci_define *define;
+ int piecewise;
+ ub4 cb_retlen;
+} oci_out_column;
+
+typedef struct {
+ sword error;
+ OCIError *pError;
+ char *default_username;
+ char *default_password;
+ char *default_dbname;
+
+ long debug_mode;
+
+ /* XXX NYI
+ long allow_persistent;
+ long max_persistent;
+ long max_links;
+ long num_persistent;
+ long num_links;
+ */
+
+ int server_num;
+ HashTable *server;
+ int user_num;
+ HashTable *user;
+
+ OCIEnv *pEnv;
+} php_oci_globals;
+
+extern php3_module_entry oci8_module_entry;
+#define phpext_oci8_ptr &oci8_module_entry
+
+#define OCI_MAX_NAME_LEN 64
+#define OCI_MAX_DATA_SIZE INT_MAX
+#define OCI_PIECE_SIZE (64*1024)-1
+
+#ifdef ZTS
+#define OCILS_D php_oci_globals *oci_globals
+#define OCILS_DC , PSLS_D
+#define OCILS_C oci_globals
+#define OCILS_CC , OCILS_C
+#define OCI(v) (oci_globals->v)
+#define OCILS_FETCH() php_oci_globals *oci_globals = ts_resource(oci_globals_id)
+#else
+#define OCILS_D
+#define OCILS_DC
+#define OCILS_C
+#define OCILS_CC
+#define OCI(v) (oci_globals.v)
+#define OCILS_FETCH()
+#endif
+
+#else /* !HAVE_OCI8 */
+
+# define oci8_module_ptr NULL
+
+#endif /* HAVE_OCI8 */
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ */