From 63cc962457a64dc5efb4d16662ec2e6cc1ed99c8 Mon Sep 17 00:00:00 2001
From: Shish <webmaster@shishnet.org>
Date: Sun, 4 Jan 2009 09:39:40 -0800
Subject: [PATCH] add the exceptions library that's being used...

---
 lib/adodb/adodb-exceptions.inc.php | 82 ++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)
 create mode 100644 lib/adodb/adodb-exceptions.inc.php

diff --git a/lib/adodb/adodb-exceptions.inc.php b/lib/adodb/adodb-exceptions.inc.php
new file mode 100644
index 00000000..3eebc4e0
--- /dev/null
+++ b/lib/adodb/adodb-exceptions.inc.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * @version V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * Released under both BSD license and Lesser GPL library license.
+ * Whenever there is any discrepancy between the two licenses,
+ * the BSD license will take precedence.
+ *
+ * Set tabs to 4 for best viewing.
+ *
+ * Latest version is available at http://php.weblogs.com
+ *
+ * Exception-handling code using PHP5 exceptions (try-catch-throw).
+ */
+
+
+if (!defined('ADODB_ERROR_HANDLER_TYPE')) define('ADODB_ERROR_HANDLER_TYPE',E_USER_ERROR); 
+define('ADODB_ERROR_HANDLER','adodb_throw');
+
+class ADODB_Exception extends Exception {
+var $dbms;
+var $fn;
+var $sql = '';
+var $params = '';
+var $host = '';
+var $database = '';
+	
+	function __construct($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection)
+	{
+		switch($fn) {
+		case 'EXECUTE':
+			$this->sql = $p1;
+			$this->params = $p2;
+			$s = "$dbms error: [$errno: $errmsg] in $fn(\"$p1\")\n";
+			break;
+	
+		case 'PCONNECT':
+		case 'CONNECT':
+			$user = $thisConnection->user;
+			$s = "$dbms error: [$errno: $errmsg] in $fn($p1, '$user', '****', $p2)\n";
+			break;
+		default:
+			$s = "$dbms error: [$errno: $errmsg] in $fn($p1, $p2)\n";
+			break;
+		}
+	
+		$this->dbms = $dbms;
+		if ($thisConnection) {
+			$this->host = $thisConnection->host;
+			$this->database = $thisConnection->database;
+		}
+		$this->fn = $fn;
+		$this->msg = $errmsg;
+				
+		if (!is_numeric($errno)) $errno = -1;
+		parent::__construct($s,$errno);
+	}
+}
+
+/**
+* Default Error Handler. This will be called with the following params
+*
+* @param $dbms		the RDBMS you are connecting to
+* @param $fn		the name of the calling function (in uppercase)
+* @param $errno		the native error number from the database
+* @param $errmsg	the native error msg from the database
+* @param $p1		$fn specific parameter - see below
+* @param $P2		$fn specific parameter - see below
+*/
+
+function adodb_throw($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection)
+{
+global $ADODB_EXCEPTION;
+	
+	if (error_reporting() == 0) return; // obey @ protocol
+	if (is_string($ADODB_EXCEPTION)) $errfn = $ADODB_EXCEPTION;
+	else $errfn = 'ADODB_EXCEPTION';
+	throw new $errfn($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection);
+}
+
+
+?>
\ No newline at end of file