phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] phpgwapi/inc/class.db.inc.php, 1.6.4.5.2.1


From: nomail
Subject: [Phpgroupware-cvs] phpgwapi/inc/class.db.inc.php, 1.6.4.5.2.1
Date: Thu, 30 Dec 2004 05:51:47 +0100

Update of /phpgwapi/inc
Modified Files:
        Branch: proposed-0_9_18-branch
          class.db.inc.php

date: 2004/12/30 04:51:47;  author: skwashd;  state: Exp;  lines: +180 -119

Log Message:
switch to ADOdb
=====================================================================
Index: phpgwapi/inc/class.db.inc.php
diff -u phpgwapi/inc/class.db.inc.php:1.6.4.5 
phpgwapi/inc/class.db.inc.php:1.6.4.5.2.1
--- phpgwapi/inc/class.db.inc.php:1.6.4.5       Tue Feb 10 13:51:17 2004
+++ phpgwapi/inc/class.db.inc.php       Thu Dec 30 04:51:47 2004
@@ -19,8 +19,7 @@
        /**
        * Include concrete database implementation
        */
-       
include(PHPGW_API_INC.'/class.db_'.$GLOBALS['phpgw_info']['server']['db_type'].'.inc.php');
-
+       include(PHPGW_API_INC.'/adodb/adodb.inc.php');
 
        /**
        * Database abstraction class to allow phpGroupWare to use multiple 
database backends
@@ -29,91 +28,29 @@
        * @subpackage database
        * @abstract
        */
-       class db_
+       class db
        {
-               /**
-               * @var string $Host database host to connect to
-               */
-               var $Host     = '';
-               
-               /**
-               * @var string $Database name of database to use
-               */
-               var $Database = '';
-               
-               /**
-               * @var string $User name of database user
-               */
-               var $User     = '';
-               
-               /**
-               * @var string $Password password for database user
-               */
-               var $Password = '';
 
-               /**
-               * @var bool $auto_stripslashes automatically remove slashes 
when returning field values - default False
-               */
-               var $auto_stripslashes = False;
-               
-               /**
-               * @var int $Auto_Free automatically free results - 0 no, 1 yes
-               */
-               var $Auto_Free     = 0;
-               
-               /**
-               * @var int $Debug enable debuging - 0 no, 1 yes
-               */
-               var $Debug         = 0;
-
-               /**
-               * @var string $Halt_On_Error "yes" (halt with message), "no" 
(ignore errors quietly), "report" (ignore errror, but spit a warning)
-               */
-               var $Halt_On_Error = 'yes';
-               
-               /**
-               * @var string $Seq_Table table for storing sequences ????
-               */
-               var $Seq_Table     = 'db_sequence';
-
-               /**
-               * @var array $Record current record
-               */
-               var $Record   = array();
-               
-               /**
-               * @var int row number for current record
-               */
-               var $Row;
-
-               /**
-               * @var int $Errno internal rdms error number for last error 
-               */
-               var $Errno    = 0;
-        
-               /** 
-               * @var string descriptive text from last error
-               */
-               var $Error    = '';
-
-               /** 
-               * @var boolean XMLRPC available
-               * @access  private
-               */
-               var $xmlrpc = False;
-               /** 
-               * @var boolean SOAP available
-               * @access  private
-               */
-               var $soap   = False;
+               var $Host;
+               var $Type;
+               var $Database;
+               var $User;
+               var $Password;
+               var $debug = 0;
+               var $Halt_On_Error = 'yes'; // should be true or false
 
                /**
                * Constructor
                * @param string $query query to be executed (optional)
                */
-               function db_($query = '')
+               function db($query = '')
                {
-                       $this->query($query);
+                       $this->adodb = 
NewADOConnection($GLOBALS['phpgw_info']['server']['db_type']);
+                       if($query != '')
+                       {
+                               echo "wtf: db";
+                               $this->query($query);
+                       }
                }
 
                /**
@@ -122,7 +59,12 @@
                */
                function link_id()
                {
-                       return $this->Link_ID;
+                       //echo "link_id: depricated";
+                       if(!$this->adodb->isConnected())
+                       {
+                               $this->connect();
+                       }
+                       return $this->adodb->_connectionID;
                }
 
                /**
@@ -131,6 +73,8 @@
                */
                function query_id()
                {
+                       echo "query_id: depricated";
+                       die('you really need this method?');
                        return $this->Query_ID;
                }
 
@@ -143,13 +87,23 @@
                * @param string $Password password for database user (optional)
                */
                function connect($Database = '', $Host = '', $User = '', 
$Password = '')
-               {}
+               {
+                       if($debug) /* $GLOBALS['phpgw']->log */ echo 
"depricated: connect";
+                       $this->Database = $Database != '' ? $Database : 
$this->Database;
+                       $this->Host = $Host != '' ? $Host : $this->Host;
+                       $this->User = $User != '' ? $User : $this->User;
+                       $this->Password = $Password != '' ? $Password : 
$this->Password;
+                       return $this->adodb->connect($this->Host, $this->User, 
$this->Password, $this->Database);
+               }
 
                /**
                * Close a connection to a database - only needed for persistent 
connections
                */
                function disconnect()
-               {}
+               {
+                       if($debug) /* $GLOBALS['phpgw']->log */ echo 
"disconnect: depricated";
+                       $this->adodb->close();
+               }
 
                /**
                * Escape strings before sending them to the database
@@ -159,12 +113,12 @@
                */
                function db_addslashes($str)
                {
-                       if (!isset($str) || $str == '')
+                       if($debug) /* $GLOBALS['phpgw']->log */ echo 
"to_timestanp: db_addsl";
+                       if(!$this->adodb)  //workaround
                        {
-                               return '';
+                               return addslashes($str);
                        }
-
-                       return addslashes($str);
+                       return substr($this->adodb->qstr($str, 
get_magic_quotes_gpc()), 1, -1);
                }
 
                /**
@@ -174,7 +128,10 @@
                * @return string rdms specific timestamp
                */
                function to_timestamp($epoch)
-               {}
+               {
+                       if($debug) /* $GLOBALS['phpgw']->log */ echo 
"to_timestanp: depricated";
+                       return substr($this->adodb->DBTimeStamp($epoch), 1, -1);
+               }
 
                /**
                * Convert a rdms specific timestamp to a unix timestamp 
@@ -183,7 +140,10 @@
                * @return int unix timestamp
                */
                function from_timestamp($timestamp)
-               {}
+               {
+                       if($debug) /* $GLOBALS['phpgw']->log */ echo 
"from_timestanp: depricated";
+                       return $this->adodb->UnixTimeStamp($timestamp);
+               }
 
                /**
                * Execute a query with limited result set
@@ -192,13 +152,20 @@
                * @see limit_query()
                */
                function limit($start)
-               {}
+               {
+                       if($debug) /* $GLOBALS['phpgw']->log */ echo 
"depricated: limit";
+                       die('where is the sql string?');
+               }
 
                /**
                * Discard the current query result
                */
                function free()
-               {}
+               {
+                       if($this->debug) /* $GLOBALS['phpgw']->log */ echo 
"depricated: limit";
+                       unset($this->resultSet);
+                       return true;
+               }
 
                /**
                * Execute a query
@@ -209,7 +176,26 @@
                * @return integer current query id if sucesful and null if fails
                */
                function query($Query_String, $line = '', $file = '')
-               {}
+               {
+                       if($this->debug) /* $GLOBALS['phpgw']->log */ echo 
"query: depricated: $Query_String <br>";
+                       if(!$this->adodb->isConnected())
+                       {
+                               $this->connect();
+                       }
+                       $this->resultSet = $this->adodb->Execute($Query_String);
+                       if(!$this->resultSet && $this->Halt_On_Error == 'yes')
+                       {
+                               echo $Query_String.'<br>';
+                               echo $this->adodb->ErrorMsg();
+                               _debug_array(debug_backtrace());
+                               die();
+                       }
+                       else
+                       {
+                               $this->delayPointer = true;
+                               return true;
+                       }
+               }
 
                /**
                * Execute a query with limited result set
@@ -221,8 +207,27 @@
                * @param integer $num_rows number of rows to return (optional), 
if unset will use 
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs']
                * @return integer current query id if sucesful and null if fails
                */
-               function limit_query($Query_String, $offset, $line = '', $file 
= '', $num_rows = '')
-               {}
+               function limit_query($Query_String, $offset = -1, $line = '', 
$file = '', $num_rows = -1)
+               {
+                       if($this->debug) /* $GLOBALS['phpgw']->log */ echo 
"depricated: limit_query";
+                       if(!$this->adodb->isConnected())
+                       {
+                               $this->connect();
+                       }
+                       $this->resultSet = 
$this->adodb->SelectLimit($Query_String, $num_rows, $offset);
+                       if(!$this->resultSet && $this->Halt_On_Error == 'yes')
+                       {
+                               echo "$Query_String<br>";
+                               print $this->adodb->ErrorMsg();
+                               _debug_array(debug_backtrace());
+                               die();
+                       }
+                       else
+                       {
+                               $this->delayPointer = true;
+                               return true;
+                       }
+               }
                
                /**
                * Move to the next row in the results set
@@ -230,7 +235,23 @@
                * @return bool was another row found?
                */
                function next_record()
-               {}
+               {
+                       if($this->debug) /* $GLOBALS['phpgw']->log */ echo 
"depricated: next_record<br>";
+                       if($this->resultSet && $this->resultSet->RecordCount())
+                       {
+                               if($this->delayPointer)
+                               {
+                                       $this->delayPointer = false;
+                                       return true;
+                               }
+       
+                               if(!$this->resultSet->EOF)
+                               {
+                                       return $this->resultSet->MoveNext();
+                               }
+                       }
+                       return false;
+               }
 
                /**
                * Move to position in result set
@@ -239,7 +260,14 @@
                * @return int 1 if sucessful or 0 if not found
                */
                function seek($pos = 0)
-               {}
+               {
+                       if($this->debug) /* $GLOBALS['phpgw']->log */ echo 
"depricated: seek";
+                       if($this->resultSet)
+                       {
+                               return $this->resultSet->Move($pos);
+                       }
+                       return false;
+               }
 
                /**
                * Begin transaction
@@ -248,7 +276,8 @@
                */
                function transaction_begin()
                {
-                       return True;
+                       if($this->debug) /* $GLOBALS['phpgw']->log */ echo 
'depricated';
+                       return $this->adodb->BeginTrans();
                }
                
                /**
@@ -258,7 +287,8 @@
                */ 
                function transaction_commit()
                {
-                       return True;
+                       if($this->debug) /* $GLOBALS['phpgw']->log */ echo 
"depricated: transaction_commit";
+                       return $this->adodb->CommitTrans();
                }
                
                /**
@@ -267,7 +297,7 @@
                * @return boolean True if sucessful, False if fails
                */
                function transaction_abort()
-               {
+               {echo "depricated: transaction_abort";
                        return True;
                }
 
@@ -279,7 +309,10 @@
                * @return integer the id, -1 if fails
                */
                function get_last_insert_id($table, $field)
-               {}
+               {
+                       //echo "depricated: get_last_insert_id";
+                       return $this->adodb->Insert_ID();
+               }
 
                /**
                * Lock a table
@@ -289,7 +322,10 @@
                * @return boolean True if sucessful, False if fails
                */
                function lock($table, $mode='write')
-               {}
+               {
+                       //echo "depricated: lock";
+                       //$this->adodb->BeginTrans();
+               }
                
                
                /**
@@ -298,7 +334,10 @@
                * @return boolean True if sucessful, False if fails
                */
                function unlock()
-               {}
+               {
+                       //echo "depricated: unlock";
+                       //$this->adodb->CommitTrans();
+               }
 
                /**
                * Get the number of rows affected by last update
@@ -306,7 +345,10 @@
                * @return integer number of rows
                */
                function affected_rows()
-               {}
+               {
+                       //echo "depricated: affected_rows";
+                       return $this->adodb->Affected_Rows();
+               }
                
                /**
                * Number of rows in current result set
@@ -314,7 +356,14 @@
                * @return integer number of rows
                */
                function num_rows()
-               {}
+               {
+                       //echo "depricated: num_rows";
+                       if($this->resultSet)
+                       {
+                               return $this->resultSet->RecordCount();
+                       }
+                       return 0;
+               }
 
                /**
                * Number of fields in current row
@@ -323,7 +372,7 @@
                */
                
                function num_fields()
-               {}
+               {echo "depricated: num_fields";}
 
                /**
                * Short hand for num_rows()
@@ -331,7 +380,7 @@
                * @see num_rows()
                */
                function nf()
-               {
+               {echo "depricated: nf";
                        return $this->num_rows();
                }
 
@@ -339,7 +388,7 @@
                * Short hand for print @see num_rows
                */
                function np()
-               {
+               {echo "depricated: np";
                        print $this->num_rows();
                }
 
@@ -350,15 +399,19 @@
                * @param boolean $strip_slashes string escape chars from 
field(optional), default false
                * @return string the field value
                */
-               function f($Name, $strip_slashes = False)
+               function f($name, $strip_slashes = False)
                {
-                       if ($strip_slashes || ($this->auto_stripslashes && ! 
$strip_slashes))
+                       if($this->resultSet && get_class($this->resultSet) != 
'adorecordset_empty')
                        {
-                               return stripslashes($this->Record[$Name]);
-                       }
-                       else
-                       {
-                               return $this->Record[$Name];
+                               //echo "depricated: f";
+                               if ($strip_slashes || ($this->auto_stripslashes 
&& ! $strip_slashes))
+                               {
+                                       return 
stripslashes($this->resultSet->Fields($name));
+                               }
+                               else
+                               {
+                                       return $this->resultSet->Fields($name);
+                               }
                        }
                }
 
@@ -370,6 +423,7 @@
                */
                function p($Name, $strip_slashes = True)
                {
+                                               echo "depi: p";
                        print $this->f($Name, $strip_slashes);
                }
 
@@ -380,7 +434,7 @@
                * @return integer sequence id
                */
                function nextid($seq_name)
-               {}
+               {                       echo "depi: nextid";}
 
                /**
                * Get description of a table
@@ -391,6 +445,7 @@
                */  
                function metadata($table = '',$full = false)
                {
+                                               echo "depi: metadata";
                        /*
                         * Due to compatibility problems with Table we changed 
the behavior
                         * of metadata();
@@ -426,7 +481,7 @@
                * @param string $file file of calling method/function (optional)
                */
                function halt($msg, $line = '', $file = '')
-               {}
+               {                       echo "depi: halt";}
 
                /**
                * Get a list of table names in the current database
@@ -434,7 +489,11 @@
                * @return array list of the tables
                */
                function table_names()
-               {}
+               {
+                       //echo "depi: table_names";
+                       //_debug_array(debug_backtrace());
+                       return $this->adodb->MetaTables('TABLES');
+               }
 
                /**
                * Return a list of indexes in current database
@@ -443,6 +502,7 @@
                */
                function index_names()
                {
+                                               echo "depi: index_names";
                        return array();
                }
                
@@ -453,7 +513,7 @@
                * @param string $adminpasswd Password for the database 
administrator user (optional)
                */
                function create_database($adminname = '', $adminpasswd = '')
-               {}
+               {                       echo "depi: create_database";}
      
                 
        /**
@@ -465,6 +525,7 @@
                 */
                function prepare_sql_statement($query)
                {
+                                               echo "depi";
                  if (($query == '') || (!$this->connect()))
                   {
                        return(FALSE);
@@ -488,6 +549,6 @@
                   }
                  return(FALSE);
          }  
-                
+           
        }
 ?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]