Replace Interbase _error_message(), _error_number() with the new error() method
diff --git a/system/database/drivers/interbase/interbase_driver.php b/system/database/drivers/interbase/interbase_driver.php
index 4dca7c8..17fcffa 100644
--- a/system/database/drivers/interbase/interbase_driver.php
+++ b/system/database/drivers/interbase/interbase_driver.php
@@ -58,7 +58,7 @@
 	 */
 	protected $_count_string = "SELECT COUNT(*) AS ";
 	protected $_random_keyword = ' Random()'; // database specific random keyword
-	
+
 	// Keeps track of the resource for the current transaction
 	protected $trans;
 
@@ -139,12 +139,12 @@
 		if (($service = ibase_service_attach($this->hostname, $this->username, $this->password)))
 		{
 			$version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);
-			
+
 			// Don't keep the service open
 			ibase_service_detach($service);
 			return $version;
 		}
-		
+
 		return FALSE;
 	}
 
@@ -203,7 +203,7 @@
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
 
 		$this->trans = @ibase_trans($this->conn_id);
-		
+
 		return TRUE;
 	}
 
@@ -226,7 +226,7 @@
 		{
 			return TRUE;
 		}
-		
+
 		return @ibase_commit($this->trans);
 	}
 
@@ -398,7 +398,7 @@
 	protected function _field_data($table)
 	{
 		// Need to find a more efficient way to do this
-		// but Interbase/Firebird seems to lack the 
+		// but Interbase/Firebird seems to lack the
 		// limit clause
 		return "SELECT * FROM {$table}";
 	}
@@ -406,25 +406,16 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * The error message string
+	 * Error
 	 *
-	 * @return	string
-	 */
-	protected function _error_message()
-	{
-		return ibase_errmsg();
-	}
-
-	// --------------------------------------------------------------------
-
-	/**
-	 * The error message number
+	 * Returns an array containing code and message of the last
+	 * database error that has occured.
 	 *
-	 * @return	integer
+	 * @return	array
 	 */
-	protected function _error_number()
+	public function error()
 	{
-		return ibase_errcode();
+		return array('code' => ibase_errcode(), 'message' => ibase_errmsg());
 	}
 
 	// --------------------------------------------------------------------
@@ -603,12 +594,12 @@
 	{
 		// Keep the current sql string safe for a moment
 		$orig_sql = $sql;
-	
+
 		// Limit clause depends on if Interbase or Firebird
 		if (stripos($this->_version(), 'firebird') !== FALSE)
 		{
 			$sql = 'FIRST '. (int) $limit;
-			
+
 			if ($offset > 0)
 			{
 				$sql .= ' SKIP '. (int) $offset;
@@ -617,16 +608,14 @@
 		else
 		{
 			$sql = 'ROWS ' . (int) $limit;
-			
+
 			if ($offset > 0)
 			{
 				$sql = 'ROWS '. (int) $offset . ' TO ' . ($limit + $offset);
 			}
 		}
-		
-		$sql = preg_replace("`SELECT`i", "SELECT {$sql}", $orig_sql);
-		
-		return $sql;
+
+		return preg_replace('`SELECT`i', "SELECT {$sql}", $orig_sql);
 	}
 
 	// --------------------------------------------------------------------
@@ -641,7 +630,8 @@
 	{
 		@ibase_close($conn_id);
 	}
+
 }
 
 /* End of file interbase_driver.php */
-/* Location: ./system/database/drivers/interbase/interbase_driver.php */
\ No newline at end of file
+/* Location: ./system/database/drivers/interbase/interbase_driver.php */