Re: OCIError patch

From: Date: Tue, 12 Mar 2002 20:59:13 +0000
Subject: Re: OCIError patch
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-81095@lists.php.net to get a copy of this message
Ahh. very kewl patch Dan. Walt On Tue, 2002-03-12 at 12:48, Daniel Ceregatti wrote: > Hi, > > I wrote a small patch to oci8.c's OCIError function which places the > following tag: > > <span style="color:#FF0000; > font-weight:bold">&lt;ERROR&gt;</span> > > just before an error in a sql statement and adds the modified statement > text into a new element called "sqltext" to the array returned by > OCIError, much the same way sqlplus adds an asterisk under an error. > > I find this very useful, and I'm hoping you will too. I've attached the > patch. > > Thanks, > > Daniel Ceregatti > ---- > > --- php-4.1.2/ext/oci8/oci8.c.orig Tue Mar 12 11:56:17 2002 > +++ php-4.1.2/ext/oci8/oci8.c Tue Mar 12 12:23:35 2002 > @@ -4090,10 +4090,13 @@ > zval **arg; > oci_statement *statement; > oci_connection *connection; > - text errbuf[512]; > - sb4 errcode = 0; > + text errbuf[512]; > + sb4 errcode = 0; > sword error = 0; > dvoid *errh = NULL; > + ub2 errorofs = 0; > + text *sqltext; > + char *retsql; > > if (zend_get_parameters_ex(1, &arg) == SUCCESS) { > statement = (oci_statement *) zend_fetch_resource(arg TSRMLS_CC, -1, NULL, NULL, 1, > le_stmt); > @@ -4130,10 +4133,33 @@ > (ub4) sizeof(errbuf), > (ub4) OCI_HTYPE_ERROR)); > > + CALL_OCI_RETURN(statement->error, OCIAttrGet( > + (dvoid *)statement->pStmt, > + OCI_HTYPE_STMT, > + (text *) &sqltext, > + (ub4 *)0, > + OCI_ATTR_STATEMENT, > + statement->pError)); > + > + CALL_OCI_RETURN(statement->error, OCIAttrGet( > + (dvoid *)statement->pStmt, > + OCI_HTYPE_STMT, > + (ub2 *)&errorofs, > + (ub4 *)0, > + OCI_ATTR_PARSE_ERROR_OFFSET, > + statement->pError)); > + > if (errcode) { > + retsql = (char *) malloc (strlen (sqltext) + 100); > + memset (retsql, 0, strlen (sqltext) + 100); > + strncat (retsql, sqltext, (int) errorofs); > + strcat (retsql, "<span style=\"color:#FF0000; > font-weight:bold\">&lt;ERROR&gt;</span>"); > + strcat (retsql, (char *) sqltext + (int) errorofs); > array_init(return_value); > add_assoc_long(return_value, "code", errcode); > + add_assoc_string(return_value, "sqltext", (char *) retsql, 1); > add_assoc_string(return_value, "message", (char*) errbuf, 1); > + free (retsql); > } else { > RETURN_FALSE; > } > > ---- > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.dev (#81095) next »