ssb             Sun Jan 14 17:14:59 2001 EDT

  Modified files:              
    /php4/pear/DB       odbc.php 
  Log:
  * DB_odbc: added native error support
  
  
Index: php4/pear/DB/odbc.php
diff -u php4/pear/DB/odbc.php:1.24 php4/pear/DB/odbc.php:1.25
--- php4/pear/DB/odbc.php:1.24  Tue Jan  9 17:01:53 2001
+++ php4/pear/DB/odbc.php       Sun Jan 14 17:14:59 2001
@@ -118,24 +118,12 @@
                } else {
                        $connect_function = 'odbc_connect';
                }
-               if ($dbhost && $user && $pw) {
-                       $conn = $connect_function($dbhost, $user, $pw);
-               } elseif ($dbhost && $user) {
-                       $conn = $connect_function($dbhost, $user);
-               } elseif ($dbhost) {
-                       $conn = $connect_function($dbhost);
-               } else {
-                       $conn = false;
+        $conn = @$connect_function($dbhost, $user, $pw);
+               if (!is_resource($conn)) {
+                       return $this->raiseError();
                }
-               if ($conn == false) {
-                       return $this->raiseError(); // XXX ERRORMSG
-               }
                $this->connection = $conn;
                return DB_OK;
-
-
-
-               $this->connection = odbc_connect($dsn, $user, $pw);
        }
 
     // }}}
@@ -253,6 +241,27 @@
     }
 
     // }}}
+    // {{{ errorNative()
+
+    /**
+     * Get the native error code of the last error (if any) that
+     * occured on the current connection.
+     *
+     * @access public
+     *
+     * @return int ODBC error code
+     */
+
+    function errorNative()
+    {
+        if (is_resource($this->connection)) {
+            return odbc_error($this->connection);
+        } else {
+            return odbc_error();
+        }
+    }
+
+    // }}}
     // {{{ autoCommit()
 
     function autoCommit($onoff = false)
@@ -286,23 +295,24 @@
     }
 
     // }}}
-
     // {{{ odbcRaiseError()
 
     function odbcRaiseError($errno = null)
     {
-        if (is_string($errno) &&
-            ereg('SQL error: (\[.*\])(.*), SQL state (.....)'
-                 $errormsg, &$data)) {
-            list($foo, $source, $message, $codecode) = $data;
+        if (is_resource($this->connection)) {
+            $message = odbc_errormsg($this->connection);
+            $code = odbc_error($this->connection);
+        } else {
+            $message = odbc_errormsg();
+            $code = odbc_error();
+        }
         if ($errno === null) {
-            return 
$this->raiseError($this->errorCode(mysql_errno($this->connection)));
+            return $this->raiseError($this->errorCode($code));
         }
         return $this->raiseError($this->errorCode($errno));
     }
 
     // }}}
-    
 }
 
 // Local variables:



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to