From 11b1bfb213f8a93fa44b107d644f11ab494903a0 Mon Sep 17 00:00:00 2001 From: Hector Cortez Date: Wed, 22 Dec 2010 20:07:16 +0000 Subject: [PATCH] Various settings for compatibility with MSSQL --- gulliver/system/class.database_mssql.php | 4 +-- workflow/engine/classes/class.net.php | 27 +++++++++++++++++++ .../engine/methods/cases/proxyCasesList.php | 8 +++--- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/gulliver/system/class.database_mssql.php b/gulliver/system/class.database_mssql.php index 38f840c1e..b1beb228c 100644 --- a/gulliver/system/class.database_mssql.php +++ b/gulliver/system/class.database_mssql.php @@ -622,17 +622,15 @@ class database extends database_base { $dbIP = DB_HOST; if($link = @mssql_connect($dbIP, $dbUser, $dbPasswd)){ @mssql_select_db( DB_NAME, $link ); - $oResult = @mssql_query("select substring(@@version, 21, 32) as version; ", $link); + $oResult = @mssql_query("select substring(@@version, 21, 6) + ' (' + CAST(SERVERPROPERTY ('productlevel') as varchar(10)) + ') ' + CAST(SERVERPROPERTY('productversion') AS VARCHAR(15)) + ' ' + CAST(SERVERPROPERTY ('edition') AS VARCHAR(25)) as version; ", $link); $aResult = @mssql_fetch_array($oResult); @mssql_free_result($oResult); $v = $aResult[0]; } else { throw new Exception(@mssql_error($link)); } - return (isset($v))?$v:'none'; - } diff --git a/workflow/engine/classes/class.net.php b/workflow/engine/classes/class.net.php index a02c81604..9070ed0f0 100644 --- a/workflow/engine/classes/class.net.php +++ b/workflow/engine/classes/class.net.php @@ -399,6 +399,7 @@ class NET if(isset($this->ip) && isset($this->db_user) && isset($this->db_passwd)) { try{ + /* switch($driver) { case 'mysql': @@ -418,8 +419,34 @@ class NET throw new Exception(@pg_last_error($link)); } break; + case 'mssql': + if(strlen(trim($this->ip))<=0) + $this->ip = DB_HOST; + if($link = @mssql_connect($this->ip, $this->db_user, $this->db_passwd)){ + @mssql_select_db( DB_NAME, $link ); + $oResult = @mssql_query("select substring(@@version, 21, 6) + ' (' + CAST(SERVERPROPERTY ('productlevel') as varchar(10)) + ') ' + CAST(SERVERPROPERTY('productversion') AS VARCHAR(15)) + ' ' + CAST(SERVERPROPERTY ('edition') AS VARCHAR(25)) as version; ", $link); + $aResult = @mssql_fetch_array($oResult); + @mssql_free_result($oResult); + $v = $aResult[0]; + } else { + throw new Exception(@mssql_error($link)); + } + break; } return (isset($v))?$v:'none'; + */ + + if(!isset($this->db_sourcename)) + $this->db_sourcename = DB_NAME; + $value = 'none'; + $sDataBase = 'database_' . strtolower(DB_ADAPTER); + if(G::LoadSystemExist($sDataBase)){ + G::LoadSystem($sDataBase); + $oDataBase = new database(); + $value = $oDataBase->getServerVersion($driver, $this->ip, $this->db_port, $this->db_user, $this->db_passwd, $this->db_sourcename); + } + return $value; + } catch (Exception $e){ throw new Exception($e->getMessage()); } diff --git a/workflow/engine/methods/cases/proxyCasesList.php b/workflow/engine/methods/cases/proxyCasesList.php index e01d545df..1c1b2bf05 100755 --- a/workflow/engine/methods/cases/proxyCasesList.php +++ b/workflow/engine/methods/cases/proxyCasesList.php @@ -288,11 +288,9 @@ $Criteria->addAscendingOrderByColumn( $sort ); } - if(g::MySQLSintaxis()) { - //limit the results according the interface - $Criteria->setLimit( $limit ); - $Criteria->setOffset( $start ); - } + //limit the results according the interface + $Criteria->setLimit( $limit ); + $Criteria->setOffset( $start ); $params = array(); $sSql = BasePeer::createSelectSql($Criteria, $params); // var_dump($sSql);