initial commit from rev. 632
This commit is contained in:
399
workflow/engine/classes/class.dbConnections.php
Normal file
399
workflow/engine/classes/class.dbConnections.php
Normal file
@@ -0,0 +1,399 @@
|
||||
<?php
|
||||
/**
|
||||
* @Author: Erik Amaru Ortiz <erik@colosa.com>
|
||||
* @Description:This is a class for load all additional connections; if exist in a particular proccess
|
||||
* @Date: 15-05-2008
|
||||
*
|
||||
*
|
||||
* class.dbConnections.php
|
||||
*
|
||||
* Email bugs/suggestions to erik@colosa.com
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
require_once 'model/DbSource.php';
|
||||
require_once 'model/Content.php';
|
||||
|
||||
/**
|
||||
* dbConnections
|
||||
*
|
||||
*
|
||||
* @copyright 2008 Colosa
|
||||
*
|
||||
*/
|
||||
class dbConnections
|
||||
{
|
||||
private $PRO_UID;
|
||||
public $connections;
|
||||
private $types;
|
||||
|
||||
/*errors handle*/
|
||||
private $errno;
|
||||
private $errstr;
|
||||
|
||||
private $encodesList;
|
||||
|
||||
/**
|
||||
* construct of dbConnections
|
||||
*
|
||||
* @param string $pPRO_UID
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($pPRO_UID = null)
|
||||
{
|
||||
$this->errno = 0;
|
||||
$this->errstr = "";
|
||||
$this->PRO_UID = $pPRO_UID;
|
||||
|
||||
$this->getAllConnections();
|
||||
}
|
||||
|
||||
/**
|
||||
* getAllConnections
|
||||
*
|
||||
* @return Array $connections
|
||||
*/
|
||||
public function getAllConnections()
|
||||
{
|
||||
if( isset($this->PRO_UID) ){
|
||||
$oDBSource = new DbSource();
|
||||
$oContent = new Content();
|
||||
$connections = Array();
|
||||
$types = Array();
|
||||
$this->have_any_connectios = false;
|
||||
|
||||
$c = new Criteria();
|
||||
|
||||
$c->clearSelectColumns();
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_UID);
|
||||
$c->addSelectColumn(DbSourcePeer::PRO_UID);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_TYPE);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_SERVER);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_DATABASE_NAME);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_USERNAME);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_PASSWORD);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_PORT);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_ENCODE);
|
||||
$c->addSelectColumn(ContentPeer::CON_VALUE);
|
||||
|
||||
$c->add(DbSourcePeer::PRO_UID, $this->PRO_UID);
|
||||
$c->add(ContentPeer::CON_CATEGORY, 'DBS_DESCRIPTION');
|
||||
$c->addJoin(DbSourcePeer::DBS_UID, ContentPeer::CON_ID);
|
||||
|
||||
$result = DbSourcePeer::doSelectRS($c);
|
||||
$result->next();
|
||||
$row = $result->getRow();
|
||||
|
||||
while ($row = $result->getRow()) {
|
||||
$connections[] = Array(
|
||||
'DBS_UID' => $row[0],
|
||||
'DBS_TYPE' => $row[2],
|
||||
'DBS_SERVER' => $row[3],
|
||||
'DBS_DATABASE_NAME' => $row[4],
|
||||
'DBS_USERNAME' => $row[5],
|
||||
'DBS_PASSWORD' => $row[6],
|
||||
'DBS_PORT' => $row[7],
|
||||
'DBS_ENCODE' => $row[8],
|
||||
'CON_VALUE' => $row[9],
|
||||
);
|
||||
$result->next();
|
||||
}
|
||||
if(!in_array($row[2], $types)) {
|
||||
$types[] = $row[2];
|
||||
}
|
||||
$this->connections = $connections;
|
||||
return $connections;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getConnections
|
||||
*
|
||||
* @param string $pType
|
||||
* @return Array $connections
|
||||
*/
|
||||
public function getConnections($pType){
|
||||
$connections = Array();
|
||||
foreach($this->connections as $c){
|
||||
if(trim($pType) == trim($c['DBS_TYPE'])){
|
||||
$connections[] = $c;
|
||||
}
|
||||
}
|
||||
if(count($connections) > 0){
|
||||
return $connections;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* getConnectionsProUid
|
||||
*
|
||||
* @param string $pType
|
||||
* @return Array $connections
|
||||
*/
|
||||
public function getConnectionsProUid($pProUid)
|
||||
{
|
||||
$connections = Array();
|
||||
$c = new Criteria();
|
||||
$c->clearSelectColumns();
|
||||
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_UID);
|
||||
$c->addSelectColumn(DbSourcePeer::PRO_UID);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_TYPE);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_SERVER);
|
||||
$c->addSelectColumn(DbSourcePeer::DBS_DATABASE_NAME);
|
||||
|
||||
$result = DbSourcePeer::doSelectRS($c);
|
||||
$result->next();
|
||||
$row = $result->getRow();
|
||||
while ($row = $result->getRow()) {
|
||||
if(trim($pProUid) == trim($row[1])){
|
||||
$connections[] = Array(
|
||||
'DBS_UID' => $row[0],
|
||||
'DBS_NAME' => '[' . $row[3] . '] ' . $row[2] . ': ' . $row[4]
|
||||
);
|
||||
}
|
||||
$result->next();
|
||||
}
|
||||
|
||||
if(count($connections) > 0){
|
||||
return $connections;
|
||||
} else {
|
||||
return Array();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* loadAdditionalConnections
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function loadAdditionalConnections()
|
||||
{
|
||||
PROPEL::Init ( PATH_METHODS.'dbConnections/genericDbConnections.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* getDbServicesAvailables
|
||||
*
|
||||
* @return array $servicesAvailables
|
||||
*/
|
||||
public function getDbServicesAvailables()
|
||||
{
|
||||
$servicesAvailables = Array();
|
||||
|
||||
$dbServices = Array(
|
||||
'mysql' => Array(
|
||||
'id' => 'mysql',
|
||||
'command' => 'mysql_connect',
|
||||
'name' => 'MySql'
|
||||
),
|
||||
'pgsql' => Array(
|
||||
'id' => 'pgsql',
|
||||
'command' => 'pg_connect',
|
||||
'name' => 'PostgreSql'
|
||||
),
|
||||
'mssql' => Array(
|
||||
'id' => 'mssql',
|
||||
'command' => 'mssql_connect',
|
||||
'name' => 'Microsoft SQL Server'),
|
||||
'oracle'=> Array(
|
||||
'id' => 'oracle',
|
||||
'command' => 'oci_connect',
|
||||
'name' => 'Oracle'
|
||||
)
|
||||
);
|
||||
/*,
|
||||
'informix'=> Array(
|
||||
'id' => 'informix',
|
||||
'command' => 'ifx_connect',
|
||||
'name' => 'Informix'
|
||||
),
|
||||
'sqlite' => Array(
|
||||
'id' => 'sqlite',
|
||||
'command' => 'sqlite_open',
|
||||
'name' => 'SQLite'
|
||||
)
|
||||
*/
|
||||
|
||||
foreach($dbServices as $service) {
|
||||
if(@function_exists($service['command'])){
|
||||
$servicesAvailables[] = $service;
|
||||
}
|
||||
}
|
||||
return $servicesAvailables;
|
||||
}
|
||||
|
||||
/**
|
||||
* showMsg
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function showMsg()
|
||||
{
|
||||
if ($this->errno != 0) {
|
||||
$msg = "
|
||||
<center>
|
||||
<fieldset style='width:90%'><legend>Class NET</legend>
|
||||
<div align=left>
|
||||
<font color='red'>
|
||||
<b>NET::ERROR NO -> $this->errno<br/>
|
||||
NET::ERROR MSG -> $this->errstr</b>
|
||||
</font>
|
||||
</div>
|
||||
</fieldset>
|
||||
<center>";
|
||||
print ($msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getEncondeList
|
||||
*
|
||||
* @param string $engine
|
||||
* @return $this->ordx($this->encodesList);
|
||||
*/
|
||||
public function getEncondeList($engine = ''){
|
||||
switch( $engine ){
|
||||
default:
|
||||
case 'mysql':
|
||||
$encodes = Array(
|
||||
Array('big5', 'big5 - Big5 Traditional Chinese'),
|
||||
Array('dec8', 'dec8 - DEC West European'),
|
||||
Array('cp850', 'cp850 - DOS West European'),
|
||||
Array('hp8', 'hp8 - HP West European'),
|
||||
Array('koi8r', 'koi8r - KOI8-R Relcom Russian'),
|
||||
Array('latin1', 'latin1 - cp1252 West European'),
|
||||
Array('latin2', 'latin2 - ISO 8859-2 Central European'),
|
||||
Array('swe7', 'swe7 - 7bit Swedish'),
|
||||
Array('ascii', 'ascii - US ASCII'),
|
||||
Array('ujis', 'ujis - EUC-JP Japanese'),
|
||||
Array('sjis', 'sjis - Shift-JIS Japanese'),
|
||||
Array('hebrew', 'hebrew - ISO 8859-8 Hebrew'),
|
||||
Array('tis620', 'tis620 - TIS620 Thai'),
|
||||
Array('euckr', 'euckr - EUC-KR Korean'),
|
||||
Array('koi8u', 'koi8u - KOI8-U Ukrainian'),
|
||||
Array('gb2312', 'gb2312 - GB2312 Simplified Chinese'),
|
||||
Array('greek', 'greek - ISO 8859-7 Greek'),
|
||||
Array('cp1250', 'cp1250 - Windows Central European'),
|
||||
Array('gbk', 'gbk - GBK Simplified Chinese'),
|
||||
Array('latin5', 'latin5 - ISO 8859-9 Turkish'),
|
||||
Array('armscii8', 'armscii8 - ARMSCII-8 Armenian'),
|
||||
Array('utf8', 'utf8 - UTF-8 Unicode'),
|
||||
Array('ucs2', 'ucs2 - UCS-2 Unicode'),
|
||||
Array('cp866', 'cp866 - DOS Russian'),
|
||||
Array('keybcs2', 'keybcs2 - DOS Kamenicky Czech-Slovak'),
|
||||
Array('macce', 'macce - Mac Central European'),
|
||||
Array('macroman', 'macroman - Mac West European'),
|
||||
Array('cp852', 'cp852 - DOS Central European'),
|
||||
Array('latin7', 'atin7 - ISO 8859-13 Baltic'),
|
||||
Array('cp1251', 'cp1251 - Windows Cyrillic'),
|
||||
Array('cp1256', 'cp1256 - Windows Arabic'),
|
||||
Array('cp1257', 'cp1257 - Windows Baltic'),
|
||||
Array('binary', 'binary - Binary pseudo charset'),
|
||||
Array('geostd8', 'geostd8 - GEOSTD8 Georgian'),
|
||||
Array('cp932', 'cp932] - SJIS for Windows Japanese'),
|
||||
Array('eucjpms', 'eucjpms - UJIS for Windows Japanese')
|
||||
);
|
||||
|
||||
break;
|
||||
case 'pgsql':
|
||||
$encodes = Array(
|
||||
Array("BIG5", "BIG5"),
|
||||
Array("EUC_CN", "EUC_CN"),
|
||||
Array("EUC_JP", "EUC_JP"),
|
||||
Array("EUC_KR", "EUC_KR"),
|
||||
Array("EUC_TW", "EUC_TW"),
|
||||
Array("GB18030", "GB18030"),
|
||||
Array("GBK", "GBK"),
|
||||
Array("ISO_8859_5", "ISO_8859_5"),
|
||||
Array("ISO_8859_6", "ISO_8859_6"),
|
||||
Array("ISO_8859_7", "ISO_8859_7"),
|
||||
Array("ISO_8859_8", "ISO_8859_8"),
|
||||
Array("JOHAB", "JOHAB"),
|
||||
Array("KOI8", "KOI8"),
|
||||
Array("selected", "LATIN1"),
|
||||
Array("LATIN2", "LATIN2"),
|
||||
Array("LATIN3", "LATIN3"),
|
||||
Array("LATIN4", "LATIN4"),
|
||||
Array("LATIN5", "LATIN5"),
|
||||
Array("LATIN6", "LATIN6"),
|
||||
Array("LATIN7", "LATIN7"),
|
||||
Array("LATIN8", "LATIN8"),
|
||||
Array("LATIN9", "LATIN9"),
|
||||
Array("LATIN10", "LATIN10"),
|
||||
Array("SJIS", "SJIS"),
|
||||
Array("SQL_ASCII", "SQL_ASCII"),
|
||||
Array("UHC", "UHC"),
|
||||
Array("UTF8", "UTF8"),
|
||||
Array("WIN866", "WIN866"),
|
||||
Array("WIN874", "WIN874"),
|
||||
Array("WIN1250", "WIN1250"),
|
||||
Array("WIN1251", "WIN1251"),
|
||||
Array("WIN1252", "WIN1252"),
|
||||
Array("WIN1256", "WIN1256"),
|
||||
Array("WIN1258", "WIN1258")
|
||||
);
|
||||
break;
|
||||
case 'mssql':
|
||||
$encodes = Array(Array('utf8', 'utf8 - UTF-8 Unicode'));
|
||||
break;
|
||||
case 'oracle':
|
||||
$encodes = Array();
|
||||
break;
|
||||
}
|
||||
|
||||
$this->encodesList = $encodes;
|
||||
return $this->ordx($this->encodesList);
|
||||
}
|
||||
|
||||
/**
|
||||
* getErrno
|
||||
*
|
||||
* @return integer $errno
|
||||
*/
|
||||
public function getErrno()
|
||||
{
|
||||
return $this->errno;
|
||||
}
|
||||
|
||||
/**
|
||||
* getErrmsg
|
||||
*
|
||||
* @return string errstr
|
||||
*/
|
||||
public function getErrmsg()
|
||||
{
|
||||
return $this->errstr;
|
||||
}
|
||||
|
||||
/**
|
||||
* getErrmsg
|
||||
*
|
||||
* @param array $m
|
||||
* @return array $aRet
|
||||
*/
|
||||
public function ordx($m)
|
||||
{
|
||||
$aTmp = Array();
|
||||
$aRet = Array();
|
||||
for($i=0; $i<count($m); $i++){
|
||||
array_push($aTmp, $m[$i][0].'|'.$m[$i][1]);
|
||||
}
|
||||
usort($aTmp,"strnatcasecmp");
|
||||
|
||||
for($i=0; $i<count($aTmp); $i++){
|
||||
$x = explode('|', $aTmp[$i]);
|
||||
array_push($aRet, Array($x[0], $x[1]));
|
||||
}
|
||||
return $aRet;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user