[Vtigercrm-commits] [vtiger-commits] r9148 - /vtigercrm/trunk/include/database/PearDatabase.php

vtigercrm-commits at vtiger.fosslabs.com vtigercrm-commits at vtiger.fosslabs.com
Mon Aug 28 14:37:27 EDT 2006


Author: richie
Date: Mon Aug 28 12:37:19 2006
New Revision: 9148

Log:
Support for PostGres DB done

Modified:
    vtigercrm/trunk/include/database/PearDatabase.php

Modified: vtigercrm/trunk/include/database/PearDatabase.php
==============================================================================
--- vtigercrm/trunk/include/database/PearDatabase.php (original)
+++ vtigercrm/trunk/include/database/PearDatabase.php Mon Aug 28 12:37:19 2006
@@ -20,766 +20,775 @@
 $log =& LoggerManager::getLogger('VT');
 
 class PearDatabase{
-	var $database = null;
-	var $dieOnError = false;
-	var $dbType = null;
-	var $dbHostName = null;
-	var $dbName = null;
-	var $dbOptions = null;
-	var $userName=null;
-	var $userPassword=null;
-	var $query_time = 0;
-	var $log = null;
-	var $lastmysqlrow = -1;
-	var $enableSQLlog = false;
-
-	function isMySQL() { return dbType=='mysql'; }
-	function isOracle() { return dbType=='oci8'; }
+    var $database = null;
+    var $dieOnError = false;
+    var $dbType = null;
+    var $dbHostName = null;
+    var $dbName = null;
+    var $dbOptions = null;
+    var $userName=null;
+    var $userPassword=null;
+    var $query_time = 0;
+    var $log = null;
+    var $lastmysqlrow = -1;
+    var $enableSQLlog = false;
+
+    function isMySQL() { return dbType=='mysql'; }
+    function isOracle() { return dbType=='oci8'; }
+    
+    function println($msg)
+    {
+	require_once('include/logging.php');
+	$log1 =& LoggerManager::getLogger('VT');
+	if(is_array($msg))
+	{
+	    $log1->info("PearDatabse ->".print_r($msg,true));
+	}
+	else
+	{
+	    $log1->info("PearDatabase ->".$msg);
+	}
+	return $msg;
+    }
+
+    function setDieOnError($value){	
+	$this->dieOnError = $value;
+    }
+    
+    function setDatabaseType($type){
+	$this->dbType = $type;
+    }
+    
+    function setUserName($name){
+	$this->userName = $name;
+    }
+    
+    function setOption($name, $value){
+	if(isset($this->dbOptions))
+	    $this->dbOptions[$name] = $value;
+	if(isset($this->database))
+	    $this->database->setOption($name, $value);
+    }	
+    
+    function setUserPassword($pass){
+	$this->userPassword = $pass;	
+    }
+    
+    function setDatabaseName($db){
+	$this->dbName = $db;	
+    }
+    
+    function setDatabaseHost($host){
+	$this->dbHostName = $host;	
+    }
+    
+    function getDataSourceName(){
+	return 	$this->dbType. "://".$this->userName.":".$this->userPassword."@". $this->dbHostName . "/". $this->dbName;
+    }
+
+    function startTransaction()
+    {
+	$this->checkConnection();
+	$this->println("TRANS Started");
+	$this->database->StartTrans();
+    }
+
+    function completeTransaction()
+    {		
+	if($this->database->HasFailedTrans()) 
+	    $this->println("TRANS  Rolled Back");
+	else
+	    $this->println("TRANS  Commited");
 	
-	function println($msg)
-	{
-		require_once('include/logging.php');
-		$log1 =& LoggerManager::getLogger('VT');
-		if(is_array($msg))
-		{
-			$log1->info("PearDatabse ->".print_r($msg,true));
-		}
-		else
-		{
-			$log1->info("PearDatabase ->".$msg);
-		}
-		return $msg;
-	}
-
-	function setDieOnError($value){	
-		$this->dieOnError = $value;
-	}
+	$this->database->CompleteTrans();
+	$this->println("TRANS  Completed");
+    }
+
+/* ADODB converted	
+ *    function checkError($msg='', $dieOnError=false)
+ *    {
+ *	if($this->dbType == "mysql")
+ *	{
+ *	    if (mysql_errno())
+ *	    {
+ *		if($this->dieOnError || $dieOnError)
+ *		{
+ *		    $this->log->fatal("MySQL error ".mysql_errno().": ".mysql_error());	
+ *		    die ($msg."MySQL error ".mysql_errno().": ".mysql_error());
+ *		} else {
+ *		    $this->log->error("MySQL error ".mysql_errno().": ".mysql_error());	
+ *		}
+ *		return true;
+ *	    }
+ *	    return false;
+ *	}	
+ *	else
+ *	{
+ *	    if(!isset($this->database))
+ *	    {
+ *		$this->log->error("Database Is Not Connected");
+ *		return true;
+ *	    }
+ *	    if(DB::isError($this->database))
+ *	    {
+ *		if($this->dieOnError || $dieOnError)
+ *		{
+ *		    $this->log->fatal($msg.$this->database->getMessage());
+ *		    die ($msg.$this->database->getMessage());	
+ *		} else {
+ *		    $this->log->error($msg.$this->database->getMessage());		
+ *		}
+ *		return true;
+ *	    }
+ *	}
+ *	return false;
+ *   }
+ */
+    
+    function checkError($msg='', $dieOnError=false)
+    {
+/*
+ *	if($this->database->ErrorNo())
+ *	{
+ *	    if($this->dieOnError || $dieOnError)
+ *	    {
+ *		$this->println("ADODB error ".$this->database->ErrorNo());	
+ *		die ($msg."ADODB error ".$this->database->ErrorNo());
+ *	    } else {
+ *		$this->log->error("MySQL error ".mysql_errno().": ".mysql_error());
+ *	    }
+ *	    return true;
+ *	}
+ */
 	
-	function setDatabaseType($type){
-		$this->dbType = $type;
-	}
+	if($this->dieOnError || $dieOnError)
+	{
+	    $this->println("ADODB error ".$msg."->[".$this->database->ErrorNo()."]".$this->database->ErrorMsg());	
+	    die ($msg."ADODB error ".$msg."->".$this->database->ErrorMsg());
+	}
+	else
+	{
+	    $this->println("ADODB error ".$msg."->[".$this->database->ErrorNo()."]".$this->database->ErrorMsg());
+	}
+	return false;
+    }
+
+    function change_key_case($arr)
+    {
+	return is_array($arr)?array_change_key_case($arr):$arr;
+    }
+
+    var $req_flist;	
+    
+    /**
+    * @return void
+    * @desc checks if a connection exists if it does not it closes the connection
+     * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc..
+     * All Rights Reserved..
+     * Contributor(s): ______________________________________..
+    */
+    function checkConnection(){
+	global $log;
+
+	if(!isset($this->database))
+	{
+	    $this->println("TRANS creating new connection");
+/*
+ *	    $flist=get_included_files();
+ *	    foreach($flist as $key=>$value)
+ *	    {
+ *		if(!strstr($value,'\\modules') && !strstr($value,'\\data'))
+ *		unset($flist[$key]);
+ *	    }
+ *	    $this->println($flist);
+ */
+	    $this->connect(false);
+	}
+	else
+	{
+	    //$this->println("checkconnect using old connection");
+	}
+    }
+
+/* ADODB converted	
+ *    function query($sql, $dieOnError=false, $msg='')
+ *    {
+ *	$this->println("query ".$sql);
+ *	$this->log->info('Query:' . $sql);
+ *	$this->checkConnection();
+ *	$this->query_time = microtime();
+ *	if($this->dbType == "mysql")
+ *	{
+ *	    $result =& mysql_query($sql);
+ *	    $this->lastmysqlrow = -1; 	
+ *	} else {
+ *	    $result =& $this->database->query($sql);
+ *	}
+ *	$this->query_time = microtime() - $this->query_time;
+ *	$this->log->info('Query Execution Time:'.$this->query_time);
+ *	$this->checkError($msg.' Query Failed:' . $sql . '::', $dieOnError);	
+ *	return $result;
+ *    }
+ */
+
+    function query($sql, $dieOnError=false, $msg='')
+    {
+	global $log;
+	//$this->println("ADODB query ".$sql);		
+	$log->debug('query being executed : '.$sql);
+	$this->checkConnection();
+	$result = & $this->database->Execute($sql);
+	$this->lastmysqlrow = -1;
+	if(!$result)$this->checkError($msg.' Query Failed:' . $sql . '::', $dieOnError);
+	return $result;		
+    }
+
+    function getEmptyBlob()
+    {
+	//if(dbType=="oci8") return 'empty_blob()';
+	//else return 'null';
+	return 'null';
+    }
+
+    function updateBlob($tablename, $colname, $id, $data)	
+    {
+	$this->println("updateBlob t=".$tablename." c=".$colname." id=".$id);
+	$this->checkConnection();
+	$result = $this->database->UpdateBlob($tablename, $colname, $data, $id);
+	$this->println("updateBlob t=".$tablename." c=".$colname." id=".$id." status=".$result);
+	return $result;
+    }
+
+    function updateBlobFile($tablename, $colname, $id, $filename)	
+    {
+	$this->println("updateBlobFile t=".$tablename." c=".$colname." id=".$id." f=".$filename);
+	$this->checkConnection();
+	$result = $this->database->UpdateBlobFile($tablename, $colname, $filename, $id);
+	$this->println("updateBlobFile t=".$tablename." c=".$colname." id=".$id." f=".$filename." status=".$result);
+	return $result;
+    }
+
+/* ADODB converted
+ *    function limitQuery($sql,$start,$count, $dieOnError=false, $msg='')
+ *    {
+ *	if($this->dbType == "mysql")
+ *	    return $this->query("$sql LIMIT $start,$count", $dieOnError, $msg);
+ *	$this->log->info('Limit Query:' . $sql. ' Start: ' .$start . ' count: ' . $count);
+ *	$this->lastsql = $sql;
+ *	
+ *	$this->checkConnection();
+ *	$this->query_time = microtime();
+ *	$result =& $this->database->limitQuery($sql,$start, $count);
+ *	$this->query_time = microtime() - $this->query_time;
+ *	$this->log->info('Query Execution Time:'.$this->query_time);
+ *	$this->checkError($msg.' Query Failed:' . $sql . '::', $dieOnError);	
+ *	return $result;
+ *    }
+ */
+    
+    function limitQuery($sql,$start,$count, $dieOnError=false, $msg='')
+    {
+	global $log;
+	//$this->println("ADODB limitQuery sql=".$sql." st=".$start." co=".$count);
+	$log->debug(' limitQuery sql = '.$sql .' st = '.$start .' co = '.$count);
+	$this->checkConnection();
+	$result =& $this->database->SelectLimit($sql,$count,$start);
+	if(!$result) $this->checkError($msg.' Limit Query Failed:' . $sql . '::', $dieOnError);
+	return $result;		
+    }
+    
+/* ADODB converted
+ *   function getOne($sql, $dieOnError=false, $msg='')
+ *   {
+ *	$this->log->info('Get One:' . $sql);
+ *	$this->checkConnection();
+ *	if($this->dbType == "mysql"){
+ *	    $queryresult =& $this->query($sql, $dieOnError, $msg);
+ *	    $result =& mysql_result($queryresult,0);
+ *	} else {
+ *	    $result =& $this->database->getOne($sql);
+ *	}
+ *	$this->checkError($msg.' Get One Failed:' . $sql . '::', $dieOnError);	
+ *	return $result;
+ *    }
+ */
+
+    function getOne($sql, $dieOnError=false, $msg='')
+    {
+	$this->println("ADODB getOne sql=".$sql);
+	$this->checkConnection();
+	$result =& $this->database->GetOne($sql);
+	if(!$result) $this->checkError($msg.' Get one Query Failed:' . $sql . '::', $dieOnError);
+	return $result;		
+    }
+
+/* ADODB converted
+ *    function getFieldsArray(&$result)
+ *    {
+ *	$field_array = array();
+ *
+ *	if(! isset($result) || empty($result))
+ *	{
+ *	    return 0;
+ *	}
+ *
+ *	if($this->dbType == "mysql")
+ *	{
+ *	    $i = 0;
+ *	    while ($i < mysql_num_fields($result)) 
+ *	    {
+ *		$meta = mysql_fetch_field($result, $i);
+ *
+ *		if (!$meta) 
+ *		{
+ *		    return 0;
+ *		}
+ *			
+ *		array_push($field_array,$meta->name);
+ *
+ *		$i++;
+ *	    }
+ *	}
+ *	else
+ *	{
+ *	    $arr = tableInfo($result);
+ *	    foreach ($arr as $index=>$subarr)
+ *	    {
+ *		array_push($field_array,$subarr['name']);	
+ *	    }
+ *	}
+ *
+ *	return $field_array;
+ *    }
+ */
+
+    function getFieldsArray(&$result)
+    {
+	//$this->println("ADODB getFieldsArray");
+	$field_array = array();
+	if(! isset($result) || empty($result))
+	{
+	    return 0;
+	}
+
+	$i = 0;
+	$n = $result->FieldCount();
+	while ($i < $n) 
+	{
+	    $meta = $result->FetchField($i);
+	    if (!$meta) 
+	    {
+		return 0;
+	    }
+	    array_push($field_array,$meta->name);
+	    $i++;
+	}
+
+	//$this->println($field_array);
+	return $field_array;			
+    }
+    
+/* ADODB Converted
+ *    function getRowCount(&$result)
+ *    {
+ *	if(isset($result) && !empty($result))
+ *	    if($this->dbType == "mysql"){
+ *		return mysql_numrows($result);
+ *	    } else {
+ *		 return $result->numRows();
+ *	    }
+ *	return 0;
+ *    }
+ */
+    
+    function getRowCount(&$result){
+	global $log;
+	//$this->println("ADODB getRowCount");
+	if(isset($result) && !empty($result))
+	    $rows= $result->RecordCount();			
+	//$this->println("ADODB getRowCount rows=".$rows);	
+	//$log->debug('getRowCount rows= '.$rows);
+	return $rows;			
+    }
+
+    /* ADODB newly added. replacement for mysql_num_rows */
+    function num_rows(&$result)
+    {
+	return $this->getRowCount($result);
+    }
+
+    /* ADODB newly added. replacement form mysql_num_fields */
+    function num_fields(&$result)
+    {
+	return $result->FieldCount();
+    }
+
+    /* ADODB newly added. replacement for mysql_fetch_array() */
+    function fetch_array(&$result)
+    {
+	if($result->EOF)
+	{
+	    //$this->println("ADODB fetch_array return null");
+	    return NULL;
+	}		
+	return $this->change_key_case($result->FetchRow());
+    }
+
+    /* ADODB newly added. replacement for mysql_result() */
+    function query_result(&$result, $row, $col=0)
+    {		
+	//$this->println("ADODB query_result r=".$row." c=".$col);
+	$result->Move($row);
+	$rowdata = $this->change_key_case($result->FetchRow());
+	//$this->println($rowdata);
+	$coldata = strip_selected_tags($rowdata[$col],'script');
+	//$this->println("ADODB query_result ". $coldata);
+	return $coldata;
+    }
+
+/* ADODB Converted	
+ *    function getAffectedRowCount(&$result)
+ *    {
+ *	if($this->dbType == "mysql"){
+ *		return mysql_affected_rows();
+ *	}
+ *	else {
+ *		return $result->affectedRows();
+ *	}
+ *	return 0;
+ *    }
+ */
+
+    function getAffectedRowCount(&$result)
+    {
+	global $log;
+	//$this->println("ADODB getAffectedRowCount");
+	$log->debug('getAffectedRowCount');
+	$rows =$this->database->Affected_Rows(); 
+	//$this->println("ADODB getAffectedRowCount rows=".rows);
+	$log->debug('getAffectedRowCount rows = '.$rows);
+	return $rows;
+    }
+
+/* ADODB converted
+ *    function requireSingleResult($sql, $dieOnError=false,$msg='', $encode=true){
+ *	$result = $this->query($sql, $dieOnError, $msg);
+ *
+ *	if($this->getRowCount($result ) == 1)
+ *	    return to_html($result, $encode);
+ *	$this->log->error('Rows Returned:'. $this->getRowCount($result) .' More than 1 row returned for '. $sql);
+ *	return '';
+ *    }
+ */
+
+    function requireSingleResult($sql, $dieOnError=false,$msg='', $encode=true)
+    {
+	$result = $this->query($sql, $dieOnError, $msg);
+
+	if($this->getRowCount($result ) == 1)				
+	    return $result;
+	$this->log->error('Rows Returned:'. $this->getRowCount($result) .' More than 1 row returned for '. $sql);
+	return '';
+    }
+    
+
+/* ADODB converted	
+ *    function fetchByAssoc(&$result, $rowNum = -1, $encode=true)
+ *    {
+ *	if(isset($result) && $rowNum < 0)
+ *	{
+ *	    if($this->dbType == "mysql"){
+ *		$row = mysql_fetch_assoc($result);
+ *		
+ *		if($encode&& is_array($row))
+ *		    return array_map('to_html', $row);	
+ *		return $row;
+ *	    }
+ *	    $row = $result->fetchRow(DB_FETCHMODE_ASSOC);	
+ *	}
+ *	if($this->dbType == "mysql"){
+ *	    if($this->getRowCount($result) > $rowNum){
+ *		mysql_data_seek($result, $rowNum);	
+ *	    }
+ *	    $this->lastmysqlrow = $rowNum;
+ *    
+ *	    $row = mysql_fetch_assoc($result);
+ *	    
+ *	    if($encode&& is_array($row))
+ *		return array_map('to_html', $row);	
+ *	    return $row;
+ *	}
+ *	$row = $result->fetchRow(DB_FETCHMODE_ASSOC, $rowNum);
+ *	if($encode)
+ *	    return array_map('to_html', $row);	
+ *	return $row;
+ *    }
+ */
+
+    function fetchByAssoc(&$result, $rowNum = -1, $encode=true)
+    {
+	//$this->println("ADODB fetchByAssoc ".$rowNum." fetch mode=".$adb->database->$ADODB_FETCH_MODE);
+	if($result->EOF)
+	{
+	    $this->println("ADODB fetchByAssoc return null");
+	    return NULL;
+	}
+	if(isset($result) && $rowNum < 0)
+	{			
+	    $row = $this->change_key_case($result->GetRowAssoc(false));			
+	    $result->MoveNext();			
+	    //print_r($row);
+	    //$this->println("ADODB fetchByAssoc r< 0 isarray r=".is_array($row)." r1=".is_array($row[1]));			
+	    //$this->println($row);
+	    if($encode&& is_array($row))
+		return array_map('to_html', $row);
+	    //$this->println("ADODB fetchByAssoc r< 0 not array r1=".$row[1]);			
+	    return $row;			
+	}
+
+	//$this->println("ADODB fetchByAssoc after if ".$rowNum);	
 	
-	function setUserName($name){
-		$this->userName = $name;
-	}
+	if($this->getRowCount($result) > $rowNum)
+	{
+	    $result->Move($rowNum);				
+	}
+
+	$this->lastmysqlrow = $rowNum; //srini - think about this
+	$row = $this->change_key_case($result->GetRowAssoc(false));		
+	$result->MoveNext();
+	//print_r($row);		
+	$this->println($row);
+			
+	if($encode&& is_array($row))
+	    return array_map('to_html', $row);	
+	return $row;
+    }
+    
+/* ADODB converted
+ *    function getNextRow(&$result, $encode=true)
+ *    {
+ *	if(isset($result)){
+ *	    $row = $result->fetchRow();
+ *	    if($encode&& is_array($row))
+ *		return array_map('to_html', $row);	
+ *	    return $row;
+ *	}
+ *	return null;
+ *    }
+ */
+    
+    function getNextRow(&$result, $encode=true){
+	global $log;
+
+	//$this->println("ADODB getNextRow");
+	$log->info('getNextRow');
+	if(isset($result)){
+	    $row = $this->change_key_case($result->FetchRow());
+	    if($row && $encode&& is_array($row))
+		return array_map('to_html', $row);	
+	    return $row;
+	}
+	return null;
+    }
+
+    function fetch_row(&$result, $encode=true)
+    {
+	return $this->getNextRow($result);
+    }
+
+    function field_name(&$result, $col)
+    {
+	return $result->FetchField($col);
+    }
+    
+    function getQueryTime(){
+	return $this->query_time;	
+    }
+
+/*
+ *    function execute($stmt, $data, $dieOnError=false, $msg=''){
+ *	$this->log->info('Executing:'.$stmt);
+ *	$this->checkConnection();
+ *	$this->query_time = microtime();
+ *	$prepared	= $this->database->prepare($stmt);
+ *	$result = execute($stmt, $data);
+ *	$this->query_time = microtime() - $this->query_time;
+ *	//$this->log->info('Query Execution Time:'.$this->query_time);
+ *	$this->checkError('Execute Failed:' . $stmt. '::', $dieOnError);
+ *	return $result;	
+ *    }
+ */
+	    
+    
+/* adodb converted
+ *    function connect($dieOnError = false){
+ *	$this->println("connect");
+ *	global $dbconfigoption;
+ *	if($this->dbType == "mysql" && $dbconfigoption['persistent'] == true){
+ *	    $this->database =@mysql_pconnect($this->dbHostName,$this->userName,$this->userPassword);
+ *	    @mysql_select_db($this->dbName) or die( "Unable to select database");				
+ *	    if(!$this->database){
+ *		$this->connection = mysql_connect($this->dbHostName,$this->userName,$this->userPassword) or die("Could not connect to server ".$this->dbHostName." as ".$this->userName.".".mysql_error());
+ *		if($this->connection == false && $dbconfigoption['persistent'] == true){
+ *		    $_SESSION['administrator_error'] = "<B>Severe Performance Degradation: Persistent Database Connections not working.  Please set \$dbconfigoption['persistent'] to false in your config.php file</B>";  			
+ *		}	
+ *	    }
+ *	}
+ *	else $this->database = DB::connect($this->getDataSourceName(), $this->dbOptions);
+ *	if($this->checkError('Could Not Connect:', $dieOnError))
+ *		$this->log->info("connected to db");
+ *		
+ *    }
+ */
+    
+    function connect($dieOnError = false)
+    {
+	//$this->println("ADODB connect");
+	global $dbconfigoption,$dbconfig;
+	//$this->println("ADODB type=".$this->dbType." host=".$this->dbHostName." dbname=".$this->dbName." user=".$this->userName." password=".$this->userPassword);
+
+/*
+ *	$driver='mysql';
+ *	$server='srinivasan';
+ *	$user='root';
+ *	$password='';
+ *	$database='vtigercrm3_2';
+ *
+ *	$this->database = ADONewConnection($driver);
+ *
+ *	#$this->database->debug = true;
+ *	$this->println("ADODB status=".$this->database->PConnect($server, $user, $password, $database));
+ */
+
+/*
+ *	$this->dbHostName="srinivasan:1521";
+ *	$this->userName="vt4";
+ *	$this->userPassword="vt4";
+ *	$this->dbName="srini";
+ *	$this->dbType="oci8";
+ */
 	
-	function setOption($name, $value){
-		if(isset($this->dbOptions))
-			$this->dbOptions[$name] = $value;
-		if(isset($this->database))
-			$this->database->setOption($name, $value);
-	}	
+	if(!isset($this->dbType))
+	{
+	    $this->println("ADODB Connect : DBType not specified");
+	    return;
+	}
 	
-	function setUserPassword($pass){
-		$this->userPassword = $pass;	
-	}
+	$this->database = ADONewConnection($this->dbType);
+	//$this->database->debug = true;
 	
-	function setDatabaseName($db){
-		$this->dbName = $db;	
-	}
-	
-	function setDatabaseHost($host){
-		$this->dbHostName = $host;	
-	}
-	
-	function getDataSourceName(){
-		return 	$this->dbType. "://".$this->userName.":".$this->userPassword."@". $this->dbHostName . "/". $this->dbName;
-	}
-
-	function startTransaction()
-	{
-		//$this->println("TRANS Started");
-		$this->checkConnection();
-		$this->database->StartTrans();
-	}
-
-	function completeTransaction()
-	{		
-		if($this->database->HasFailedTrans()) 
-			$this->println("TRANS  Rolled Back");
-		else
-			$this->println("TRANS  Commited");
-		
-		$this->database->CompleteTrans();
-		$this->println("TRANS  Completed");
-	}
-
-	/* ADODB converted	
-	function checkError($msg='', $dieOnError=false){
-		if($this->dbType == "mysql"){
-			if (mysql_errno()){
-			if($this->dieOnError || $dieOnError){
-         	 	$this->log->fatal("MySQL error ".mysql_errno().": ".mysql_error());	
-				die ($msg."MySQL error ".mysql_errno().": ".mysql_error());
-				
-			}else{
-				$this->log->error("MySQL error ".mysql_errno().": ".mysql_error());	
-			}
-			return true;
-			}
-			return false;
-		}	
-			else{
-				if(!isset($this->database)){
-					$this->log->error("Database Is Not Connected");
-					return true;
-				}
-				if(DB::isError($this->database)){
-					
-					if($this->dieOnError || $dieOnError){
-						$this->log->fatal($msg.$this->database->getMessage());
-						 die ($msg.$this->database->getMessage());	
-					}else{
-						$this->log->error($msg.$this->database->getMessage());		
-					}
-					return true;
-				}
-		}return false;
-		
-	}
-	*/
-	
-	function checkError($msg='', $dieOnError=false)
-	{
-		/*if($this->database->ErrorNo())
-		{
-			if($this->dieOnError || $dieOnError)
-			{
-         	 		$this->println("ADODB error ".$this->database->ErrorNo());	
-				die ($msg."ADODB error ".$this->database->ErrorNo());
-				
-			}else{
-				$this->log->error("MySQL error ".mysql_errno().": ".mysql_error());
-			}
-			return true;
-		}*/
-		
-		if($this->dieOnError || $dieOnError)
-		{
-         		$this->println("ADODB error ".$msg."->[".$this->database->ErrorNo()."]".$this->database->ErrorMsg());	
-			die ($msg."ADODB error ".$msg."->".$this->database->ErrorMsg());
-		}
-		else
-		{
-			$this->println("ADODB error ".$msg."->[".$this->database->ErrorNo()."]".$this->database->ErrorMsg());
-
-		}
-		return false;
-	}
-
-	function change_key_case($arr)
-	{
-		return is_array($arr)?array_change_key_case($arr):$arr;
-	}
-
-	var $req_flist;	
-	
-	
-	/**
-	* @return void
-	* @desc checks if a connection exists if it does not it closes the connection
-	 * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc..
-	 * All Rights Reserved..
-	 * Contributor(s): ______________________________________..
-	*/
-	function checkConnection(){
-global $log;
-			if(!isset($this->database))
-			{
-				$this->println("TRANS creating new connection");
-				/*$flist=get_included_files();
-				foreach($flist as $key=>$value)
-				{
-					if(!strstr($value,'\\modules') && !strstr($value,'\\data'))
-					unset($flist[$key]);
-					
-				}
-				$this->println($flist);*/
-				$this->connect(false);
-			}
-			else
-			{
-		//		$this->println("checkconnect using old connection");
-				/*** Delibrately commented as per Richie's advice(printed frequently)***/
-				// $log->debug('checkconnect using old connection');
-			}
-	}
-
-	/* ADODB converted	
-	function query($sql, $dieOnError=false, $msg=''){
-		$this->println("query ".$sql);
-		$this->log->info('Query:' . $sql);
-		$this->checkConnection();
-		$this->query_time = microtime();
-		if($this->dbType == "mysql"){
-			$result =& mysql_query($sql);
-			$this->lastmysqlrow = -1; 	
-		}else{
-			$result =& $this->database->query($sql);
-		}
-		$this->query_time = microtime() - $this->query_time;
-		$this->log->info('Query Execution Time:'.$this->query_time);
-		$this->checkError($msg.' Query Failed:' . $sql . '::', $dieOnError);	
-		return $result;
-	}
-	*/
-
-	function query($sql, $dieOnError=false, $msg='')
-	{
-		global $log;
-		//$this->println("ADODB query ".$sql);		
-		$log->debug('query being executed : '.$sql);
-		$this->checkConnection();
-		$result = & $this->database->Execute($sql);
-		$this->lastmysqlrow = -1;
-		if(!$result)$this->checkError($msg.' Query Failed:' . $sql . '::', $dieOnError);
-		return $result;		
-	}
-
-
-	function getEmptyBlob()
-	{
-		//if(dbType=="oci8") return 'empty_blob()';
-		//else return 'null';
-		return 'null';
-	}
-
-	function updateBlob($tablename, $colname, $id, $data)	
-	{
-		$this->println("updateBlob t=".$tablename." c=".$colname." id=".$id);
-		$this->checkConnection();
-		$result = $this->database->UpdateBlob($tablename, $colname, $data, $id);
-		$this->println("updateBlob t=".$tablename." c=".$colname." id=".$id." status=".$result);
-		return $result;
-	}
-
-	function updateBlobFile($tablename, $colname, $id, $filename)	
-	{
-		$this->println("updateBlobFile t=".$tablename." c=".$colname." id=".$id." f=".$filename);
-		$this->checkConnection();
-		$result = $this->database->UpdateBlobFile($tablename, $colname, $filename, $id);
-		$this->println("updateBlobFile t=".$tablename." c=".$colname." id=".$id." f=".$filename." status=".$result);
-		return $result;
-	}
-
-	/* ADODB converted
-	function limitQuery($sql,$start,$count, $dieOnError=false, $msg=''){
-		if($this->dbType == "mysql")
-			 return $this->query("$sql LIMIT $start,$count", $dieOnError, $msg);
-		$this->log->info('Limit Query:' . $sql. ' Start: ' .$start . ' count: ' . $count);
-		$this->lastsql = $sql;
-		
-		$this->checkConnection();
-		$this->query_time = microtime();
-		$result =& $this->database->limitQuery($sql,$start, $count);
-		$this->query_time = microtime() - $this->query_time;
-		$this->log->info('Query Execution Time:'.$this->query_time);
-		$this->checkError($msg.' Query Failed:' . $sql . '::', $dieOnError);	
-		return $result;
-	}
-	*/
-	
-	function limitQuery($sql,$start,$count, $dieOnError=false, $msg='')
-	{
-		global $log;
-		//$this->println("ADODB limitQuery sql=".$sql." st=".$start." co=".$count);
-		$log->debug(' limitQuery sql = '.$sql .' st = '.$start .' co = '.$count);
-		$this->checkConnection();
-		$result =& $this->database->SelectLimit($sql,$count,$start);
-		if(!$result) $this->checkError($msg.' Limit Query Failed:' . $sql . '::', $dieOnError);
-		return $result;		
-	}
-	
-	/* ADODB converted
-	function getOne($sql, $dieOnError=false, $msg=''){
-		$this->log->info('Get One:' . $sql);
-		$this->checkConnection();
-		if($this->dbType == "mysql"){
-			$queryresult =& $this->query($sql, $dieOnError, $msg);
-			$result =& mysql_result($queryresult,0);
-		}else{
-			$result =& $this->database->getOne($sql);
-		}
-		$this->checkError($msg.' Get One Failed:' . $sql . '::', $dieOnError);	
-		return $result;
-	}
-	*/
-
-	function getOne($sql, $dieOnError=false, $msg='')
-	{
-		$this->println("ADODB getOne sql=".$sql);
-		$this->checkConnection();
-		$result =& $this->database->GetOne($sql);
-		if(!$result) $this->checkError($msg.' Get one Query Failed:' . $sql . '::', $dieOnError);
-		return $result;		
-	}
-
-	/* ADODB converted
-	function getFieldsArray(&$result)
-	{
-		$field_array = array();
-
-		if(! isset($result) || empty($result))
-		{
-			return 0;
-		}
-
-		if($this->dbType == "mysql")
-		{
-			$i = 0;
-			while ($i < mysql_num_fields($result)) 
-			{
-   				$meta = mysql_fetch_field($result, $i);
-
-   				if (!$meta) 
-				{
-					return 0;
-   				}
-					
-				array_push($field_array,$meta->name);
-
-   				$i++;
-			}
-		}
-		else
-		{
-			$arr = tableInfo($result);
-			foreach ($arr as $index=>$subarr)
-			{
-				array_push($field_array,$subarr['name']);	
-			}
-	
-		}
-
-		return $field_array;
-			
-	}
-	*/
-
-	function getFieldsArray(&$result)
-	{
-		//$this->println("ADODB getFieldsArray");
-		$field_array = array();
-		if(! isset($result) || empty($result))
-		{
-			return 0;
-		}
-
-		$i = 0;
-		$n = $result->FieldCount();
-		while ($i < $n) 
-		{
-			$meta = $result->FetchField($i);
-			if (!$meta) 
-			{
-				return 0;
-			}
-			array_push($field_array,$meta->name);
-			$i++;
-		}
-
-		//$this->println($field_array);
-		return $field_array;			
-	}
-	
-	/* ADODB Converted
-	function getRowCount(&$result){
-		if(isset($result) && !empty($result))
-			if($this->dbType == "mysql"){
-				return mysql_numrows($result);
-			}else{
-				 return $result->numRows();
-			}
-		return 0;
-			
-	}
-	*/
-	
-	function getRowCount(&$result){
-		global $log;
-		//$this->println("ADODB getRowCount");
-		if(isset($result) && !empty($result))
-			$rows= $result->RecordCount();			
-		//$this->println("ADODB getRowCount rows=".$rows);	
-		//$log->debug('getRowCount rows= '.$rows);
-		return $rows;			
-	}
-
-	/* ADODB newly added. replacement for mysql_num_rows */
-
-	function num_rows(&$result)
-	{
-		return $this->getRowCount($result);
-	}
-
-	/* ADODB newly added. replacement form mysql_num_fields */
-
-	function num_fields(&$result)
-	{
-		return $result->FieldCount();
-	}
-
-	/* ADODB newly added. replacement for mysql_fetch_array() */
-
-	function fetch_array(&$result)
-	{
-		if($result->EOF)
-		{
-			//$this->println("ADODB fetch_array return null");
-			return NULL;
-		}		
-		return $this->change_key_case($result->FetchRow());
-	}
-
-	/* ADODB newly added. replacement for mysql_result() */
-
-	function query_result(&$result, $row, $col=0)
-	{		
-		//$this->println("ADODB query_result r=".$row." c=".$col);
-		$result->Move($row);
-		$rowdata = $this->change_key_case($result->FetchRow());
-		//$this->println($rowdata);
-		$coldata = strip_selected_tags($rowdata[$col],'script');
-		//$this->println("ADODB query_result ". $coldata);
-		return $coldata;
-	}
-	
-
-	/* ADODB Converted	
-	function getAffectedRowCount(&$result){
-			if($this->dbType == "mysql"){
-				return mysql_affected_rows();
-			}
-			else {
-				return $result->affectedRows();
-			}
-		return 0;
-			
-	}*/
-
-	function getAffectedRowCount(&$result){
-		global $log;
-//		$this->println("ADODB getAffectedRowCount");
-	$log->debug('getAffectedRowCount');
-		$rows =$this->database->Affected_Rows(); 
-	//	$this->println("ADODB getAffectedRowCount rows=".rows);
-	$log->debug('getAffectedRowCount rows = '.$rows);
-		return $rows;
-	}
-			
-		
-
-	/* ADODB converted
-	function requireSingleResult($sql, $dieOnError=false,$msg='', $encode=true){
-			$result = $this->query($sql, $dieOnError, $msg);
-		
-			if($this->getRowCount($result ) == 1)
-				return to_html($result, $encode);
-			$this->log->error('Rows Returned:'. $this->getRowCount($result) .' More than 1 row returned for '. $sql);
-			return '';
-	}*/
-
-	function requireSingleResult($sql, $dieOnError=false,$msg='', $encode=true){
-			$result = $this->query($sql, $dieOnError, $msg);
-		
-			/*$row = $this->change_key_case($result->GetRowAssoc(false));
-			$this->println("rsr ");
-			$this->println($row);*/
-			if($this->getRowCount($result ) == 1)				
-				//return to_html($result, $encode); // srini - just think $result compatability
-				return $result;
-			$this->log->error('Rows Returned:'. $this->getRowCount($result) .' More than 1 row returned for '. $sql);
-			return '';
-	}
-	
-
-	/* ADODB converted	
-	function fetchByAssoc(&$result, $rowNum = -1, $encode=true){
-		if(isset($result) && $rowNum < 0){
-			if($this->dbType == "mysql"){
-				$row = mysql_fetch_assoc($result);
-				
-				if($encode&& is_array($row))return array_map('to_html', $row);	
-				return $row;
-			}
-			$row = $result->fetchRow(DB_FETCHMODE_ASSOC);	
-		}
-		if($this->dbType == "mysql"){
-				if($this->getRowCount($result) > $rowNum){
-
-					mysql_data_seek($result, $rowNum);	
-				}
-				$this->lastmysqlrow = $rowNum;
-			
-				$row = mysql_fetch_assoc($result);
-				
-				if($encode&& is_array($row))return array_map('to_html', $row);	
-				return $row;
-				
-		}
-		$row = $result->fetchRow(DB_FETCHMODE_ASSOC, $rowNum);
-		if($encode)return array_map('to_html', $row);	
-		return $row;
-	}
-	*/
-
-	function fetchByAssoc(&$result, $rowNum = -1, $encode=true){
-		//$this->println("ADODB fetchByAssoc ".$rowNum." fetch mode=".$adb->database->$ADODB_FETCH_MODE);
-		if($result->EOF)
-		{
-			$this->println("ADODB fetchByAssoc return null");
-			return NULL;
-		}
-		if(isset($result) && $rowNum < 0)
-		{			
-			$row = $this->change_key_case($result->GetRowAssoc(false));			
-			$result->MoveNext();			
-			//print_r($row);
-			//$this->println("ADODB fetchByAssoc r< 0 isarray r=".is_array($row)." r1=".is_array($row[1]));			
-			//$this->println($row);
-			if($encode&& is_array($row))
-				return array_map('to_html', $row);
-			//$this->println("ADODB fetchByAssoc r< 0 not array r1=".$row[1]);			
-			return $row;			
-		}
-	
-		//$this->println("ADODB fetchByAssoc after if ".$rowNum);	
-		
-		if($this->getRowCount($result) > $rowNum)
-		{
-			$result->Move($rowNum);				
-		}
-
-		$this->lastmysqlrow = $rowNum; //srini - think about this
-		$row = $this->change_key_case($result->GetRowAssoc(false));		
-		$result->MoveNext();
-		//print_r($row);		
-		$this->println($row);
-				
-		if($encode&& is_array($row))return array_map('to_html', $row);	
-		return $row;
-	}
-	
-	/* ADODB converted
-	function getNextRow(&$result, $encode=true){
-		if(isset($result)){
-			$row = $result->fetchRow();
-			if($encode&& is_array($row))return array_map('to_html', $row);	
-				return $row;
-			
-		}
-		return null;
-	}
-	*/
-	
-	function getNextRow(&$result, $encode=true){
-		global $log;
-
-		//$this->println("ADODB getNextRow");
-		$log->info('getNextRow');
-		if(isset($result)){
-			$row = $this->change_key_case($result->FetchRow());
-			if($row && $encode&& is_array($row))return array_map('to_html', $row);	
-				return $row;
-			
-		}
-		return null;
-	}
-
-	function fetch_row(&$result, $encode=true)
-	{
-		return $this->getNextRow($result);
-	}
-
-	function field_name(&$result, $col)
-	{
-		return $result->FetchField($col);
-	}
-	
-	function getQueryTime(){
-		return $this->query_time;	
-	}
-	/*function execute($stmt, $data, $dieOnError=false, $msg=''){
-		$this->log->info('Executing:'.$stmt);
-		$this->checkConnection();
-		$this->query_time = microtime();
-		$prepared	= $this->database->prepare($stmt);
-		$result = execute($stmt, $data);
-		$this->query_time = microtime() - $this->query_time;
-		//$this->log->info('Query Execution Time:'.$this->query_time);
-		$this->checkError('Execute Failed:' . $stmt. '::', $dieOnError);
-		return $result;	
-	}*/
-		
-	
-	/* adodb converted
-	function connect($dieOnError = false){
-		$this->println("connect");
-		global $dbconfigoption;
-		if($this->dbType == "mysql" && $dbconfigoption['persistent'] == true){
-			$this->database =@mysql_pconnect($this->dbHostName,$this->userName,$this->userPassword);
-			@mysql_select_db($this->dbName) or die( "Unable to select database");				
-			if(!$this->database){
-				$this->connection = mysql_connect($this->dbHostName,$this->userName,$this->userPassword) or die("Could not connect to server ".$this->dbHostName." as ".$this->userName.".".mysql_error());
-				if($this->connection == false && $dbconfigoption['persistent'] == true){
-					$_SESSION['administrator_error'] = "<B>Severe Performance Degradation: Persistent Database Connections not working.  Please set \$dbconfigoption['persistent'] to false in your config.php file</B>";  			
-				}	
-			}
-		}
-		else $this->database = DB::connect($this->getDataSourceName(), $this->dbOptions);
-		if($this->checkError('Could Not Connect:', $dieOnError))
-			$this->log->info("connected to db");
-			
-	}*/
-	
-	function connect($dieOnError = false)
-	{
-		//$this->println("ADODB connect");
-		global $dbconfigoption,$dbconfig;
-		//$this->println("ADODB type=".$this->dbType." host=".$this->dbHostName." dbname=".$this->dbName." user=".$this->userName." password=".$this->userPassword);
-
-		/*$driver='mysql';
-		$server='srinivasan';
-		$user='root';
-		$password='';
-		$database='vtigercrm3_2';
-
-		$this->database = ADONewConnection($driver);
-
-		#$this->database->debug = true;
-		$this->println("ADODB status=".$this->database->PConnect($server, $user, $password, $database));*/
-
-		/*$this->dbHostName="srinivasan:1521";
-		$this->userName="vt4";
-		$this->userPassword="vt4";
-		$this->dbName="srini";
-		$this->dbType="oci8";*/
-		
-		if(!isset($this->dbType))
-		{
-			$this->println("ADODB Connect : DBType not specified");
-			return;
-		}
-		
-		$this->database = ADONewConnection($this->dbType);
-		//$this->database->debug = true;
-		
-		$this->database->PConnect($this->dbHostName, $this->userName, $this->userPassword, $this->dbName);
-		$this->database->LogSQL($this->enableSQLlog);
-		//$this->database->SetFetchMode(ADODB_FETCH_ASSOC); 
-		//$this->println("ADODB type=".$this->dbType." host=".$this->dbHostName." dbname=".$this->dbName." user=".$this->userName." password=".$this->userPassword);		
-
-	}
+	$this->database->PConnect($this->dbHostName, $this->userName, $this->userPassword, $this->dbName);
+	$this->database->LogSQL($this->enableSQLlog);
+	//$this->database->SetFetchMode(ADODB_FETCH_ASSOC); 
+	//$this->println("ADODB type=".$this->dbType." host=".$this->dbHostName." dbname=".$this->dbName." user=".$this->userName." password=".$this->userPassword);		
+    }
+
 /*
-	function PearDatabase(){			
-			//$this->println("PearDatabase");
-			global $currentModule;
-			$this->log =& LoggerManager::getLogger('PearDatabase_'. $currentModule);
-			$this->resetSettings();
-			
-			
-	}
-	function resetSettings(){
-		global $dbconfig, $dbconfigoption;
-		$this->disconnect();
-		$this->setDatabaseType($dbconfig['db_type']);
-		$this->setUserName($dbconfig['db_username']);
-		$this->setUserPassword($dbconfig['db_password']);
-		$this->setDatabaseHost( $dbconfig['db_hostname']);
-		$this->setDatabaseName($dbconfig['db_name']);
-		$this->dbOptions = $dbconfigoption;
-		$this->enableSQLlog = ($dbconfig['log_sql'] == true);
-		//$this->println("resetSettings log=".$this->enableSQLlog);
-		//$this->println($dbconfig);
-		/*if($this->dbType != "mysql"){
-			require_once( 'DB.php' );	
-		}*/
-			
-		
-
-	function PearDatabase($dbtype='',$host='',$dbname='',$username='',$passwd=''){			
-        //$this->println("PearDatabase");
-			global $currentModule;
-			$this->log =& LoggerManager::getLogger('PearDatabase_'. $currentModule);
-			$this->resetSettings($dbtype,$host,$dbname,$username,$passwd);
-			
-			
-	}
-    
-   
+ *    function PearDatabase(){			
+ *	//$this->println("PearDatabase");
+ *	global $currentModule;
+ *	$this->log =& LoggerManager::getLogger('PearDatabase_'. $currentModule);
+ *	$this->resetSettings();
+ *   }
+ *
+ *   function resetSettings(){
+ *	global $dbconfig, $dbconfigoption;
+ *	$this->disconnect();
+ *	$this->setDatabaseType($dbconfig['db_type']);
+ *	$this->setUserName($dbconfig['db_username']);
+ *	$this->setUserPassword($dbconfig['db_password']);
+ *	$this->setDatabaseHost( $dbconfig['db_hostname']);
+ *	$this->setDatabaseName($dbconfig['db_name']);
+ *	$this->dbOptions = $dbconfigoption;
+ *	$this->enableSQLlog = ($dbconfig['log_sql'] == true);
+ *	//$this->println("resetSettings log=".$this->enableSQLlog);
+ *	//$this->println($dbconfig);
+ *	//if($this->dbType != "mysql"){
+ *	//	require_once( 'DB.php' );	
+ *	//}
+ *   }
+ */
+
+    function PearDatabase($dbtype='',$host='',$dbname='',$username='',$passwd='')
+    {
+	//$this->println("PearDatabase");
+	global $currentModule;
+	$this->log =& LoggerManager::getLogger('PearDatabase_'. $currentModule);
+	$this->resetSettings($dbtype,$host,$dbname,$username,$passwd);
+    }
+
     function resetSettings($dbtype,$host,$dbname,$username,$passwd)
     {
-       
-		global $dbconfig, $dbconfigoption;
-		
-        if($host == '')
-        {
-            $this->disconnect();
-            $this->setDatabaseType($dbconfig['db_type']);
-            $this->setUserName($dbconfig['db_username']);
-            $this->setUserPassword($dbconfig['db_password']);
-            $this->setDatabaseHost( $dbconfig['db_hostname']);
-            $this->setDatabaseName($dbconfig['db_name']);
-            $this->dbOptions = $dbconfigoption;
+	global $dbconfig, $dbconfigoption;
+	    
+	if($host == '')
+	{
+	    $this->disconnect();
+	    $this->setDatabaseType($dbconfig['db_type']);
+	    $this->setUserName($dbconfig['db_username']);
+	    $this->setUserPassword($dbconfig['db_password']);
+	    $this->setDatabaseHost( $dbconfig['db_hostname']);
+	    $this->setDatabaseName($dbconfig['db_name']);
+	    $this->dbOptions = $dbconfigoption;
 	    if($dbconfig['log_sql'])
-            $this->enableSQLlog = ($dbconfig['log_sql'] == true);
-            //$this->println("resetSettings log=".$this->enableSQLlog);
-            //$this->println($dbconfig);
-            /*if($this->dbType != "mysql"){
-			require_once( 'DB.php' );	
-		}*/
-        }
-        else
-        {
-            
-            $this->disconnect();
-            $this->setDatabaseType($dbtype);
-            $this->setDatabaseName($dbname);
-            $this->setUserName($username);
-            $this->setUserPassword($passwd);
-            $this->setDatabaseHost( $host);
-            
-        }
-}
-
-function quote($string){
+	    $this->enableSQLlog = ($dbconfig['log_sql'] == true);
+	    //$this->println("resetSettings log=".$this->enableSQLlog);
+	    //$this->println($dbconfig);
+	    /*if($this->dbType != "mysql"){
+		require_once( 'DB.php' );	
+	    }*/
+	}
+	else
+	{
+	    $this->disconnect();
+	    $this->setDatabaseType($dbtype);
+	    $this->setDatabaseName($dbname);
+	    $this->setUserName($username);
+	    $this->setUserPassword($passwd);
+	    $this->setDatabaseHost( $host);
+	}
+    }
+
+    function quote($string){
 	return $this->database->qstr($string);	
-}
+    }
 
 
 /* ADODB converted
-function disconnect() {
-		$this->println("disconnect");
-		if(isset($this->database)){
-			if($this->dbType == "mysql"){
-				mysql_close($this->database);
-			}else{
-				$this->database->disconnect();
-			}
-			unset($this->database);
-		}
-		
-}
-*/
-
-function disconnect() {
-		//$this->println("ADODB disconnect");
-
-		// srini -- do something
-		
-}
-
-function setDebug($value)
-{
+ *    function disconnect() {
+ *	$this->println("disconnect");
+ *	if(isset($this->database)){
+ *	    if($this->dbType == "mysql"){
+ *		mysql_close($this->database);
+ *	    } else {
+ *		$this->database->disconnect();
+ *	    }
+ *	    unset($this->database);
+ *	}
+ *    }
+ */
+
+    function disconnect() {
+	$this->println("ADODB disconnect");
+	if(isset($this->database)){
+	    if($this->dbType == "mysql"){
+		mysql_close($this->database);
+	    } else {
+		$this->database->disconnect();
+	    }
+	    unset($this->database);
+	}
+    }
+
+    function setDebug($value)
+    {
 	$this->database->debug = $value;
-}
-
-
-// ADODB newly added methods
-
-
-function createTables($schemaFile, $dbHostName=false, $userName=false, $userPassword=false, $dbName=false, $dbType=false)
-{
+    }
+
+
+    // ADODB newly added methods
+    function createTables($schemaFile, $dbHostName=false, $userName=false, $userPassword=false, $dbName=false, $dbType=false)
+    {
 	$this->println("ADODB createTables ".$schemaFile);
 	if($dbHostName!=false) $this->dbHostName=$dbHostName;
 	if($userName!=false) $this->userName=$userPassword;
@@ -791,7 +800,6 @@
 	$this->checkConnection();
 	$db = $this->database;
 	//$db->debug = true;
-	
 
 	//$this->println("ADODB createTables connect status=".$db->Connect($this->dbHostName, $this->userName, $this->userPassword, $this->dbName));
 	$schema = new adoSchema( $db );
@@ -811,10 +819,10 @@
 	// needs to return in a decent way
 	$this->println("ADODB createTables ".$schemaFile." status=".$result);
 	return $result;
-}
-
-function createTable($tablename, $flds)
-{
+    }
+
+    function createTable($tablename, $flds)
+    {
 	$this->println("ADODB createTable table=".$tablename." flds=".$flds);
 	$this->checkConnection();
 	//$dict = NewDataDictionary(ADONewConnection($this->dbType));
@@ -823,10 +831,10 @@
 	$result = $dict->ExecuteSQLArray($sqlarray);
 	$this->println("ADODB createTable table=".$tablename." flds=".$flds." status=".$result);
 	return $result;
-}
-
-function alterTable($tablename, $flds, $oper)
-{
+    }
+
+    function alterTable($tablename, $flds, $oper)
+    {
 	$this->println("ADODB alterTableTable table=".$tablename." flds=".$flds." oper=".$oper);
 	//$dict = NewDataDictionary(ADONewConnection($this->dbType));
 	$this->checkConnection();
@@ -835,11 +843,11 @@
 	
 	if($oper == 'Add_Column')
 	{
-		$sqlarray = $dict->AddColumnSQL($tablename, $flds);
+	    $sqlarray = $dict->AddColumnSQL($tablename, $flds);
 	}
 	else if($oper == 'Delete_Column')
 	{
-		$sqlarray = $dict->DropColumnSQL($tablename, $flds);
+	    $sqlarray = $dict->DropColumnSQL($tablename, $flds);
 	}
 
 	$this->println("sqlarray");
@@ -850,10 +858,10 @@
 	$this->println("ADODB alterTableTable table=".$tablename." flds=".$flds." oper=".$oper." status=".$result);
 	return $result;
 
-}
-
-function getColumnNames($tablename)
-{
+    }
+
+    function getColumnNames($tablename)
+    {
 	$this->println("ADODB getColumnNames table=".$tablename);	
 	$this->checkConnection();
 	$adoflds = $this->database->MetaColumns($tablename);
@@ -861,83 +869,79 @@
 	$i=0;
 	foreach($adoflds as $fld)
 	{
-		$colNames[$i] = $fld->name;
-		$i++;
+	    $colNames[$i] = $fld->name;
+	    $i++;
 	}
 	return $colNames;	
-}
-
-function formatString($tablename,$fldname, $str)
-{
+    }
+
+    function formatString($tablename,$fldname, $str)
+    {
 	//$this->println("ADODB formatString table=".$tablename." fldname=".$fldname." str=".$str);
 	$this->checkConnection();
 	$adoflds = $this->database->MetaColumns($tablename);
 	
 	foreach ( $adoflds as $fld )
 	{
-		//$this->println("ADODB formatString adofld =".$fld->name);
-		if(strcasecmp($fld->name,$fldname)==0)
+	    //$this->println("ADODB formatString adofld =".$fld->name);
+	    if(strcasecmp($fld->name,$fldname)==0)
+	    {
+		//$this->println("ADODB formatString fldname=".$fldname." fldtype =".$fld->type);
+
+		$fldtype =strtoupper($fld->type); 	
+		if(strcmp($fldtype,'CHAR')==0 || strcmp($fldtype,'VARCHAR') == 0 || strcmp($fldtype,'VARCHAR2') == 0 || strcmp($fldtype,'LONGTEXT')==0 || strcmp($fldtype,'TEXT')==0)
 		{
-			//$this->println("ADODB formatString fldname=".$fldname." fldtype =".$fld->type);
-	
-			$fldtype =strtoupper($fld->type); 	
-			if(strcmp($fldtype,'CHAR')==0 || strcmp($fldtype,'VARCHAR') == 0 || strcmp($fldtype,'VARCHAR2') == 0 || strcmp($fldtype,'LONGTEXT')==0 || strcmp($fldtype,'TEXT')==0)
-			{
-				return $this->database->Quote($str);
-				//$this->println("ADODB return else normal");
-				
-			}
-			else if(strcmp($fldtype,'DATE') ==0 || strcmp($fldtype,'TIMESTAMP')==0)
-			{
-				return $this->formatDate($str);
-			}
-			else
-			{				
-				return $str;
-			}
+		    //$this->println("ADODB return else normal");
+		    return $this->database->Quote($str);
 		}
+		else if(strcmp($fldtype,'DATE') ==0 || strcmp($fldtype,'TIMESTAMP')==0)
+		{
+		    return $this->formatDate($str);
+		}
+		else
+		{				
+		    return $str;
+		}
+	    }
 	}
 	$this->println("format String Illegal field name ".$fldname);
 	return $str;
-}
-
-function formatDate($datetime)
-{
+    }
+
+    function formatDate($datetime)
+    {
 	$this->checkConnection();
 	//$db = ADONewConnection($this->dbType);
 	$db = &$this->database;
 	$date = $db->DBTimeStamp($datetime);
 	//if($db->dbType=='mysql') return $this->quote($date);
 	return $date;
-}
-
-function getDBDateString($datecolname)
-{
+    }
+
+    function getDBDateString($datecolname)
+    {
 	$this->checkConnection();
 	$db = &$this->database;
 	$datestr = $db->SQLDate("Y-m-d, H:i:s" ,$datecolname);
 	return $datestr;	
-}
-
-function getUniqueID($seqname)
-{
+    }
+
+    function getUniqueID($seqname)
+    {
 	$this->checkConnection();
 	return $this->database->GenID($seqname."_seq",1);
-}
-function get_tables()
-{
-    $this->checkConnection();
-    $result = & $this->database->MetaTables('TABLES');
-    $this->println($result);
-    return $result;		
-}
-
-	
-}
+    }
+    function get_tables()
+    {
+	$this->checkConnection();
+	$result = & $this->database->MetaTables('TABLES');
+	$this->println($result);
+	return $result;		
+    }
+} /* End of class */
 
 $adb = new PearDatabase();
 $adb->connect();
-
 //$adb->database->setFetchMode(ADODB_FETCH_NUM);
 
 





More information about the vtigercrm-commits mailing list