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"><ERROR></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\"><ERROR></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
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php