Cool.

From the first sight it looks good, but I am gonna have to test it
through various platforms - I have access to multilingual environments here.

I tend to be a bit concerned changing the session type, but it seems
alright for me so far. Let me play with it and let you know if it can go
up the way it is.

Any comments, Thies?

--
Maxim Maletsky
[EMAIL PROTECTED]



"Abdul-Kareem Abo-Namous" <[EMAIL PROTECTED]> wrote... :

> sure, here's thecode, diff'd against the latest cvs (from today). hope it's
> ok!
> 
> oci8_charsets_oci8c.diff is for oci8.c
> oci8_charsets_configm4.diff for config.m4 and guess what
> oci8_charsets_phpoci8h.diff is for ;-)))
> 
> cheers,
> Abdul
> 
> ----- Original Message -----
> From: "Maxim Maletsky" <[EMAIL PROTECTED]>
> To: "Abdul-Kareem Abo-Namous" <[EMAIL PROTECTED]>
> Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Thursday, November 28, 2002 1:27 PM
> Subject: Re: [PHP-DEV] OCI patch
> 
> 
> >
> > Thies was on it. But, I think he is pretty busy right now. Resubmit it
> > to me and I will look instead of him. Meanwhile, if Thies has time he
> > will spare the light on the issue.
> >
> > --
> > Maxim Maletsky
> > [EMAIL PROTECTED]
> >
> >
> >
> > "Abdul-Kareem Abo-Namous" <[EMAIL PROTECTED]> wrote... :
> >
> > > hi everyone
> > >
> > > what happened to the patch i submitted? is it of such bad quality? ;-)
> > >
> > > maybe someone can tell me more..? :-)
> > >
> > > thanks,
> > > Abdul
> > >
> > > ----- Original Message -----
> > > From: <[EMAIL PROTECTED]>
> > > To: "MaximMaletsky" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> > > Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> > > Sent: Thursday, October 17, 2002 12:55 PM
> > > Subject: Re: Re: [PHP-DEV] OCI patch
> > >
> > >
> > > > Ok, I've attached a pretty ok version. I had to update the config.m4
> to
> > > inculde a HAVE_OCI9 define, but since I'm not really good in this kind
> of
> > > thing, buildconf now reports a warning
> > > >
> > > > autoheader: No template for symbol `HAVE_OCI9'
> > > >
> > > > don't know what to do about it. otherwise everything compiles and runs
> > > smoothly, so I hope you'll enjoy :-).
> > > >
> > > > Abdul
> > > >
> > > > Maxim Maletsky <[EMAIL PROTECTED]> schrieb am 17.10.02 12:45:57:
> > > > > OK, then.
> > > > >
> > > > >
> > > > > --
> > > > > Maxim Maletsky
> > > > > [EMAIL PROTECTED]
> > > > >
> > > > >
> > > > >
> > > > > <[EMAIL PROTECTED]> wrote... :
> > > > >
> > > > > >
> > > > > > Thies, Maxim, if you could hang on for a few hours I'll be back
> with a
> > > few ideas and a cleaned up version of the patches + a switch for oracle
> 9+
> > > to enable the new nls functions.
> > > > > >
> > > > > > Abdul
> > > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> > --------------------------------------------------------------------------
> --
> > > ----
> > >
> > >
> > > > --- oci8.c Wed Oct  9 16:55:16 2002
> > > > +++ oci8.c Thu Oct 17 13:32:09 2002
> > > > @@ -20,7 +20,7 @@
> > > >
> > > +----------------------------------------------------------------------+
> > > >   */
> > > >
> > > > -/* $Id: oci8.c,v 1.176 2002/09/12 09:48:02 thies Exp $ */
> > > > +/* $Id: oci8.c,v 1.175 2002/08/20 07:26:50 edink Exp $ */
> > > >
> > > >  /* TODO list:
> > > >   *
> > > > @@ -199,7 +199,7 @@
> > > >  static oci_server *_oci_open_server(char *dbname,int persistent);
> > > >  static void _oci_close_server(oci_server *server);
> > > >
> > > > -static oci_session *_oci_open_session(oci_server* server,char
> > > *username,char *password,int persistent,int exclusive);
> > > > +static oci_session *_oci_open_session(oci_server* server,char
> > > *username,char *password,int persistent,int exclusive,char *charset);
> > > >  static void _oci_close_session(oci_session *session);
> > > >
> > > >  static sb4 oci_bind_in_callback(dvoid *, OCIBind *, ub4, ub4, dvoid
> **,
> > > ub4 *, ub1 *, dvoid **);
> > > > @@ -451,7 +451,7 @@
> > > >   OCI_DEFAULT,
> > > >   0,
> > > >   NULL));
> > > > -
> > > > +
> > > >   CALL_OCI(OCIHandleAlloc(
> > > >   OCI(pEnv),
> > > >   (dvoid **)&OCI(pError),
> > > > @@ -631,7 +631,7 @@
> > > >
> > > >   php_info_print_table_start();
> > > >   php_info_print_table_row(2, "OCI8 Support", "enabled");
> > > > - php_info_print_table_row(2, "Revision", "$Revision: 1.176 $");
> > > > + php_info_print_table_row(2, "Revision", "$Revision: 1.175 $");
> > > >  #ifndef PHP_WIN32
> > > >   php_info_print_table_row(2, "Oracle Version", PHP_OCI8_VERSION );
> > > >   php_info_print_table_row(2, "Compile-time ORACLE_HOME",
> PHP_OCI8_DIR );
> > > > @@ -1158,9 +1158,9 @@
> > > >   php_error(E_WARNING, "Unknown descriptor type %d.",Z_TYPE_P(descr));
> > > >   return 0;
> > > >   }
> > > > -
> > > > +
> > > >   CALL_OCI_RETURN(OCI(error), OCIDescriptorAlloc(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   (dvoid*)&(descr->ocidescr),
> > > >   Z_TYPE_P(descr),
> > > >   (size_t) 0,
> > > > @@ -1244,7 +1244,7 @@
> > > >   oci_debug("_oci_make_zval: %16s,retlen = %4d,retlen4 =
> %d,storage_size4
> > > = %4d,indicator %4d, retcode = %4d",
> > > >
> > >
> column->name,column->retlen,column->retlen4,column->storage_size4,column->in
> > > dicator,column->retcode);
> > > >
> > > > - if ((! statement->has_data) || (column->indicator == -1)) { /*
> column is
> > > NULL or statment has no current data */
> > > > + if (column->indicator == -1) { /* column is NULL */
> > > >   ZVAL_NULL(value);
> > > >   return 0;
> > > >   }
> > > > @@ -1351,14 +1351,14 @@
> > > >   statement = ecalloc(1,sizeof(oci_statement));
> > > >
> > > >      CALL_OCI(OCIHandleAlloc(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >       (dvoid **)&statement->pStmt,
> > > >   OCI_HTYPE_STMT,
> > > >   0,
> > > >   NULL));
> > > >
> > > >      CALL_OCI(OCIHandleAlloc(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   (dvoid **)&statement->pError,
> > > >   OCI_HTYPE_ERROR,
> > > >   0,
> > > > @@ -1392,9 +1392,7 @@
> > > >   if (query) {
> > > >   statement->last_query = estrdup(query);
> > > >   }
> > > > -
> > > >   statement->conn = connection;
> > > > - statement->has_data = 0;
> > > >
> > > >   statement->id = zend_list_insert(statement,le_stmt);
> > > >
> > > > @@ -1771,7 +1769,6 @@
> > > >   }
> > > >
> > > >   statement->error = 0; /* OCI_NO_DATA is NO error for us!!! */
> > > > - statement->has_data = 0;
> > > >
> > > >   return 0;
> > > >   }
> > > > @@ -1831,16 +1828,12 @@
> > > >   _oci_make_zval(column->define->zval,statement,column,"OCIFetch",0
> > > TSRMLS_CC);
> > > >   }
> > > >
> > > > - statement->has_data = 1;
> > > > -
> > > >   return 1;
> > > >   }
> > > >
> > > >   oci_error(statement->pError, func, statement->error);
> > > >   oci_handle_error(statement->conn, statement->error);
> > > >
> > > > - statement->has_data = 0;
> > > > -
> > > >   return 0;
> > > >  }
> > > >
> > > > @@ -1855,8 +1848,8 @@
> > > >   ub4 siz = 0;
> > > >   ub4 readlen = 0;
> > > >   char *buf;
> > > > +
> > > >   TSRMLS_FETCH();
> > > > -
> > > >   *loblen = 0;
> > > >
> > > >   if (Z_TYPE_P(mydescr) == OCI_DTYPE_FILE) {
> > > > @@ -1888,17 +1881,17 @@
> > > >   buf = emalloc(readlen + 1);
> > > >
> > > >   while (readlen > 0) { /* thies loop should not be entered on readlen
> ==
> > > 0 */
> > > > - CALL_OCI_RETURN(connection->error, OCILobRead(
> > > > +   CALL_OCI_RETURN(connection->error, OCILobRead(
> > > >   connection->pServiceContext,
> > > >   connection->pError,
> > > >   mydescr->ocidescr,
> > > > - &readlen, /* IN/OUT bytes toread/read */
> > > > + &readlen, /* IN/OUT bytes toread/read */
> > > >   siz + 1, /* offset (starts with 1) */
> > > >   (dvoid *) ((char *) buf + siz),
> > > >   readlen, /* size of buffer */
> > > >   (dvoid *)0,
> > > >   (OCICallbackLobRead) 0, /* callback... */
> > > > - (ub2) 0, /* The character set ID of the buffer data. */
> > > > + (ub2) connection->session->charsetId, /* The character set ID of the
> > > buffer data. */
> > > >   (ub1) SQLCS_IMPLICIT)); /* The character set form of the buffer
> data. */
> > > >
> > > >   siz += readlen;
> > > > @@ -1911,7 +1904,7 @@
> > > >   break;
> > > >   }
> > > >   }
> > > > -
> > > > +
> > > >   if (connection->error) {
> > > >   oci_error(connection->pError, "OCILobRead", connection->error);
> > > >   oci_handle_error(connection, connection->error);
> > > > @@ -1936,11 +1929,11 @@
> > > >   buf = erealloc(buf,siz+1);
> > > >   buf[ siz ] = 0;
> > > >
> > > > + oci_debug("OCIloadlob: size=%d",siz);
> > > > +
> > > >   *buffer = buf;
> > > >   *loblen = siz;
> > > >
> > > > - oci_debug("OCIloadlob: size=%d",siz);
> > > > -
> > > >   return 0;
> > > >  }
> > > >  /* }}} */
> > > > @@ -2119,11 +2112,12 @@
> > > >
> > > >   */
> > > >
> > > > -static oci_session *_oci_open_session(oci_server* server,char
> > > *username,char *password,int persistent,int exclusive)
> > > > +static oci_session *_oci_open_session(oci_server* server,char
> > > *username,char *password,int persistent,int exclusive,char *charset)
> > > >  {
> > > >   oci_session *session = 0, *psession = 0;
> > > >   OCISvcCtx *svchp = 0;
> > > >   char *hashed_details;
> > > > + ub2 charsetid;
> > > >      TSRMLS_FETCH();
> > > >
> > > >   /*
> > > > @@ -2172,22 +2166,56 @@
> > > >   session->server = server;
> > > >   session->exclusive = exclusive;
> > > >
> > > > + #ifdef HAVE_OCI9
> > > > + //following chunk is Oracle 9i+ ONLY
> > > > + if (charset != "\0") {
> > > > + //get ub2 charset id based on charset
> > > > + //this is pretty secure, since if we don't have a valid character
> set
> > > name,
> > > > + //0 comes back and we can still use the 0 in all further
> statements ->
> > > OCI uses NLS_LANG
> > > > + //setting in that case
> > > > + CALL_OCI_RETURN(charsetid, OCINlsCharSetNameToId(
> > > > + OCI(pEnv),
> > > > + charset));
> > > > +
> > > > + session->charsetId = charsetid;
> > > > + oci_debug("oci_do_connect: using charset id=%d",charsetid);
> > > > + }
> > > > +
> > > > + //create an environment using the character set id, Oracle 9i+ ONLY
> > > > + CALL_OCI(OCIEnvNlsCreate(
> > > > + &session->pEnv,
> > > > + OCI_DEFAULT,
> > > > + 0,
> > > > + NULL,
> > > > + NULL,
> > > > + NULL,
> > > > + 0,
> > > > + NULL,
> > > > + charsetid,
> > > > + charsetid));
> > > > +
> > > > + #else
> > > > + //fallback solution (simply use global env and charset)
> > > > + session->pEnv = OCI(pEnv);
> > > > + session->charsetId = 0;
> > > > +
> > > > + #endif  /*HAVE_OCI9*/
> > > > +
> > > >   /* allocate temporary Service Context */
> > > >   CALL_OCI_RETURN(OCI(error), OCIHandleAlloc(
> > > > - OCI(pEnv),
> > > > + session->pEnv,
> > > >   (dvoid **)&svchp,
> > > >   OCI_HTYPE_SVCCTX,
> > > >   0,
> > > > - NULL));
> > > > + NULL));
> > > >
> > > >   if (OCI(error) != OCI_SUCCESS) {
> > > >   oci_error(OCI(pError), "_oci_open_session: OCIHandleAlloc
> > > OCI_HTYPE_SVCCTX", OCI(error));
> > > >   goto CLEANUP;
> > > >   }
> > > >
> > > > - /* allocate private session-handle */
> > > >   CALL_OCI_RETURN(OCI(error), OCIHandleAlloc(
> > > > - OCI(pEnv),
> > > > + session->pEnv,
> > > >   (dvoid **)&session->pSession,
> > > >   OCI_HTYPE_SESSION,
> > > >   0,
> > > > @@ -2305,7 +2333,7 @@
> > > >   if (session->is_open) {
> > > >   /* Temporary Service Context */
> > > >   CALL_OCI_RETURN(OCI(error), OCIHandleAlloc(
> > > > - OCI(pEnv),
> > > > + session->pEnv,
> > > >   (dvoid **) &svchp,
> > > >   (ub4) OCI_HTYPE_SVCCTX,
> > > >   (size_t) 0,
> > > > @@ -2365,6 +2393,10 @@
> > > >   (ub4) OCI_HTYPE_SESSION));
> > > >   }
> > > >
> > > > + CALL_OCI(OCIHandleFree(
> > > > + (dvoid *)session->pEnv,
> > > > + OCI_HTYPE_ENV));
> > > > +
> > > >   hashed_details = session->hashed_details;
> > > >
> > > >   if (! OCI(shutdown)) {
> > > > @@ -2551,13 +2583,26 @@
> > > >   */
> > > >  static void oci_do_connect(INTERNAL_FUNCTION_PARAMETERS,int
> > > persistent,int exclusive)
> > > >  {
> > > > -    char *username, *password, *dbname;
> > > > -    zval **userParam, **passParam, **dbParam;
> > > > +    char *username, *password, *dbname, *charset;
> > > > +    zval **userParam, **passParam, **dbParam, **charParam;
> > > >      oci_server *server = 0;
> > > >      oci_session *session = 0;
> > > >      oci_connection *connection = 0;
> > > > -
> > > > -    if (zend_get_parameters_ex(3, &userParam, &passParam, &dbParam)
> ==
> > > SUCCESS) {
> > > > +
> > > > + charset = "\0";
> > > > +    //if a forth parameter is handed over, it is the charset
> identifier
> > > (but is only used in Oracle 9i+)
> > > > +    if (zend_get_parameters_ex(4, &userParam, &passParam, &dbParam,
> > > &charParam) == SUCCESS) {
> > > > + convert_to_string_ex(userParam);
> > > > + convert_to_string_ex(passParam);
> > > > + convert_to_string_ex(dbParam);
> > > > + convert_to_string_ex(charParam);
> > > > +
> > > > + username = Z_STRVAL_PP(userParam);
> > > > + password = Z_STRVAL_PP(passParam);
> > > > + dbname = Z_STRVAL_PP(dbParam);
> > > > + charset = Z_STRVAL_PP(charParam);
> > > > + oci_debug("oci_do_connect: using charset=%s",charset);
> > > > +    } else if (zend_get_parameters_ex(3, &userParam, &passParam,
> > > &dbParam) == SUCCESS) {
> > > >   convert_to_string_ex(userParam);
> > > >   convert_to_string_ex(passParam);
> > > >   convert_to_string_ex(dbParam);
> > > > @@ -2577,7 +2622,7 @@
> > > >      }
> > > >
> > > >   connection = (oci_connection *) ecalloc(1,sizeof(oci_connection));
> > > > -
> > > > +
> > > >   if (! connection) {
> > > >   goto CLEANUP;
> > > >   }
> > > > @@ -2596,7 +2641,8 @@
> > > >   persistent = server->persistent;
> > > >   }
> > > >
> > > > - session =
> > > _oci_open_session(server,username,password,persistent,exclusive);
> > > > + session =
> > >
> _oci_open_session(server,username,password,persistent,exclusive,charset);
> > > > +
> > > >
> > > >   if (! session) {
> > > >   goto CLEANUP;
> > > > @@ -3476,7 +3522,7 @@
> > > >              }
> > > >
> > > >              connection->error =
> > > > -                OCILobIsTemporary(OCI(pEnv),
> > > > +                OCILobIsTemporary(connection->session->pEnv,
> > > >                                    connection->pError,
> > > >                                    mylob,
> > > >                                    &is_temporary);
> > > > @@ -4601,7 +4647,7 @@
> > > >              oci_debug("OCIfreecollection: coll=%d",inx);
> > > >
> > > >   CALL_OCI_RETURN(connection->error, OCIObjectFree(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   connection->pError,
> > > >   (dvoid *)coll->coll,
> > > >   (ub2)(OCI_OBJECTFREE_FORCE)));
> > > > @@ -4653,7 +4699,7 @@
> > > >   convert_to_string_ex(arg);
> > > >   if(Z_STRLEN_PP(arg) == 0) {
> > > >   CALL_OCI_RETURN(connection->error, OCICollAppend(
> > > > -   OCI(pEnv),
> > > > +   connection->session->pEnv,
> > > >     connection->pError,
> > > >     (dword *)0,
> > > >     &null_ind,
> > > > @@ -4686,7 +4732,7 @@
> > > >      }
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCICollAppend(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      (dvoid *) &dt,
> > > >      (dvoid *) &new_ind,
> > > > @@ -4702,7 +4748,7 @@
> > > >      convert_to_string_ex(arg);
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCIStringAssignText(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      Z_STRVAL_PP(arg),
> > > >      Z_STRLEN_PP(arg),
> > > > @@ -4714,7 +4760,7 @@
> > > >      }
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCICollAppend(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      (dvoid *) ocistr,
> > > >      (dvoid *) &new_ind,
> > > > @@ -4751,7 +4797,7 @@
> > > >      }
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCICollAppend(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      (dvoid *) &num,
> > > >      (dvoid *) &new_ind,
> > > > @@ -4799,7 +4845,7 @@
> > > >   connection = coll->conn;
> > > >
> > > >   CALL_OCI_RETURN(connection->error, OCICollGetElem(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   connection->pError,
> > > >   coll->coll,
> > > >   ndx,
> > > > @@ -4839,7 +4885,7 @@
> > > >      RETURN_STRINGL(buff,len,1);
> > > >      case OCI_TYPECODE_VARCHAR2 :
> > > >      ocistr = *(OCIString **)elem;
> > > > -    str = OCIStringPtr(OCI(pEnv),ocistr); /* XXX not protected
> against
> > > recursion! */
> > > > +    str = OCIStringPtr(connection->session->pEnv,ocistr); /* XXX not
> > > protected against recursion! */
> > > >      RETURN_STRINGL(str,strlen(str),1);
> > > >      break;
> > > >      case OCI_TYPECODE_UNSIGNED16 :                       /* UNSIGNED
> > > SHORT  */
> > > > @@ -4898,7 +4944,7 @@
> > > >   connection = coll->conn;
> > > >
> > > >   CALL_OCI_RETURN(connection->error, OCICollAssign(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   connection->pError,
> > > >   from_coll->coll,
> > > >   coll->coll));
> > > > @@ -4958,7 +5004,7 @@
> > > >
> > > >   if(Z_STRLEN_PP(val) == 0) {
> > > >   CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> > > > -   OCI(pEnv),
> > > > +   connection->session->pEnv,
> > > >     connection->pError,
> > > >     ndx,
> > > >     (dword *)0,
> > > > @@ -4991,7 +5037,7 @@
> > > >      }
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      ndx,
> > > >      (dword *)&dt,
> > > > @@ -5007,7 +5053,7 @@
> > > >      convert_to_string_ex(val);
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCIStringAssignText(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      Z_STRVAL_PP(val),
> > > >      Z_STRLEN_PP(val),
> > > > @@ -5019,7 +5065,7 @@
> > > >      }
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      ndx,
> > > >      (dword *)ocistr,
> > > > @@ -5058,7 +5104,7 @@
> > > >      }
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      ndx,
> > > >      (dword *)&num,
> > > > @@ -5095,7 +5141,7 @@
> > > >   connection = coll->conn;
> > > >
> > > >   CALL_OCI_RETURN(connection->error, OCICollSize(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   coll->conn->pError,
> > > >   coll->coll,
> > > >   &sz));
> > > > @@ -5198,7 +5244,7 @@
> > > >   zend_list_addref(connection->id);
> > > >
> > > >   CALL_OCI_RETURN(connection->error, OCITypeByName(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   connection->pError,
> > > >   connection->pServiceContext,
> > > >   ac==3?(text *)Z_STRVAL_PP(schema):(text *)0,
> > > > @@ -5217,7 +5263,7 @@
> > > >      }
> > > >
> > > >   CALL_OCI_RETURN(connection->error, OCIHandleAlloc(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   (dvoid **) &dschp1,
> > > >   (ub4) OCI_HTYPE_DESCRIBE,
> > > >   (size_t) 0,
> > > > @@ -5301,7 +5347,7 @@
> > > >      }
> > > >
> > > >      CALL_OCI_RETURN(connection->error, OCITypeByRef(
> > > > -    OCI(pEnv),
> > > > +    connection->session->pEnv,
> > > >      connection->pError,
> > > >      coll->elem_ref,
> > > >      OCI_DURATION_SESSION,
> > > > @@ -5333,7 +5379,7 @@
> > > >
> > > >   /* Create object to hold return table */
> > > >   CALL_OCI_RETURN(connection->error, OCIObjectNew(
> > > > - OCI(pEnv),
> > > > + connection->session->pEnv,
> > > >   connection->pError,
> > > >   connection->pServiceContext,
> > > >   OCI_TYPECODE_TABLE,
> > > >
> > >
> > >
> >
> > --------------------------------------------------------------------------
> --
> > > ----
> > >
> > >
> > > > --- php_oci8.h Thu Sep 12 11:48:03 2002
> > > > +++ php_oci8.h Thu Oct 17 13:46:52 2002
> > > > @@ -17,7 +17,7 @@
> > > >
> > > +----------------------------------------------------------------------+
> > > >  */
> > > >
> > > > -/* $Id: php_oci8.h,v 1.24 2002/09/12 09:48:03 thies Exp $ */
> > > > +/* $Id: php_oci8.h,v 1.23 2002/02/10 12:41:52 thies Exp $ */
> > > >
> > > >  #if HAVE_OCI8
> > > >  # ifndef PHP_OCI8_H
> > > > @@ -69,7 +69,9 @@
> > > >   int exclusive;
> > > >   char *hashed_details;
> > > >   oci_server *server;
> > > > - OCISession *pSession;
> > > > + OCIEnv *pEnv; //sessions own environment
> > > > + OCISession *pSession;
> > > > + ub2 charsetId; //sessions used character set (mostly this will be 0,
> so
> > > NLS_LANG will be used.
> > > >  } oci_session;
> > > >
> > > >  typedef struct {
> > > >
> > >
> > >
> >
> > --------------------------------------------------------------------------
> --
> > > ----
> > >
> > >
> > > > --- config.m4.orig Thu Oct 17 13:27:52 2002
> > > > +++ config.m4 Thu Oct 17 13:28:02 2002
> > > > @@ -66,7 +66,7 @@
> > > >        PHP_ADD_LIBRARY_WITH_PATH(clntsh, $OCI8_DIR/lib,
> > > OCI8_SHARED_LIBADD)
> > > >        ;;
> > > >
> > > > -    8.1|9.0)
> > > > +    8.1)
> > > >        PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
> > > >        if test -f $OCI8_DIR/lib/libocijdbc8.so ; then
> > > >          PHP_ADD_LIBRARY(ocijdbc8, 1, OCI8_SHARED_LIBADD)
> > > > @@ -75,6 +75,18 @@
> > > >        AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
> > > >        AC_DEFINE(HAVE_OCI8_ATTR_STATEMENT,1,[ ])
> > > >        ;;
> > > > +
> > > > +    9.0)
> > > > +      PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
> > > > +      if test -f $OCI8_DIR/lib/libocijdbc8.so ; then
> > > > +        PHP_ADD_LIBRARY(ocijdbc8, 1, OCI8_SHARED_LIBADD)
> > > > +      fi
> > > > +      PHP_ADD_LIBPATH($OCI8_DIR/lib, OCI8_SHARED_LIBADD)
> > > > +      AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
> > > > +      AC_DEFINE(HAVE_OCI8_ATTR_STATEMENT,1,[ ])
> > > > +      AC_DEFINE(HAVE_OCI9,1,[])
> > > > +      ;;
> > > > +
> > > >
> > > >      *)
> > > >        AC_MSG_ERROR(Unsupported Oracle version!)
> > > >
> > >
> > >
> >
> > --------------------------------------------------------------------------
> --
> > > ----
> > >
> > >
> > > > --
> > > > PHP Development Mailing List <http://www.php.net/>
> > > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> >


--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to