From 0f720084fa7a05eee51b40739d1973b5323326e6 Mon Sep 17 00:00:00 2001 From: Eriksen Costa Paixão Date: Wed, 6 May 2009 18:10:03 +0000 Subject: [PATCH] #30 by Eriksen, José Rogério Santos: Adicionado parâmetro porta na configuração de conexão com o servidor --- ieducar/intranet/include/clsBanco.inc.php | 66 ++++++++++++++++++++++++++++++++++++------------------------------ ieducar/intranet/include/clsBancoPgSql.inc.php | 214 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------- ieducar/tests/unit/ClsBancoTest.class.php | 18 ++++++++++++++++++ 3 files changed, 191 insertions(+), 107 deletions(-) diff --git a/ieducar/intranet/include/clsBanco.inc.php b/ieducar/intranet/include/clsBanco.inc.php index ce0f602..d6b18a9 100755 --- a/ieducar/intranet/include/clsBanco.inc.php +++ b/ieducar/intranet/include/clsBanco.inc.php @@ -1,29 +1,34 @@ * - * Este programa é software livre, você pode redistribuí-lo e/ou - * modificá-lo sob os termos da Licença Pública Geral GNU, conforme - * publicada pela Free Software Foundation, tanto a versão 2 da - * Licença como (a seu critério) qualquer versão mais nova. + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. * - * Este programa é distribuído na expectativa de ser útil, mas SEM - * QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI- - * ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con- - * sulte a Licença Pública Geral GNU para obter mais detalhes. + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. * - * Você deve ter recebido uma cópia da Licença Pública Geral GNU - * junto com este programa. Se não, escreva para a Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307, USA. + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + */ + +/** + * clsBanco class. * + * @author Prefeitura Municipal de Itajaí + * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL + * @package Core + * @since Classe disponível desde a versão 1.0.0 + * @version $Id$ */ if (!class_exists('clsBancoSql_')) { @@ -32,10 +37,11 @@ if (!class_exists('clsBancoSql_')) { class clsBanco extends clsBancoSQL_ { - public $strHost = "localhost"; // Nome ou endereço IP do servidor do banco de dados - public $strBanco = "ieducardb"; // Nome do banco de dados - public $strUsuario = "ieducaruser"; // Usuário devidamente autorizado a acessar o banco - public $strSenha = "ieducar"; // Senha do usuário do banco + protected $strHost = 'localhost'; // Nome ou endereço IP do servidor do banco de dados + protected $strBanco = 'ieducardb'; // Nome do banco de dados + protected $strUsuario = 'ieducaruser'; // Usuário devidamente autorizado a acessar o banco + protected $strSenha = 'ieducar'; // Senha do usuário do banco + protected $strPort = NULL; // Porta do servidor de banco de dados public $bLink_ID = 0; // Identificador da conexão public $bConsulta_ID = 0; // Identificador do resultado da consulta @@ -48,9 +54,9 @@ class clsBanco extends clsBancoSQL_ { public $bAuto_Limpa = FALSE; // '1' para limpar o resultado assim que chegar ao último registro - public $strStringSQL = ""; + public $strStringSQL = ''; - var $strType = ""; + var $strType = ''; var $arrayStrFields = array(); var $arrayStrFrom = array(); var $arrayStrWhere = array(); @@ -58,7 +64,7 @@ class clsBanco extends clsBancoSQL_ { var $arrayStrGroupBy = array(); var $iLimitInicio; var $iLimitQtd; - var $arrayStrArquivo = ""; + var $arrayStrArquivo = ''; @@ -73,9 +79,9 @@ class clsBanco extends clsBancoSQL_ { * Retorna a quantidade de registros de uma tabela baseado no objeto que a * abstrai. Este deve ter um atributo público Object->_tabela. * - * @param object Objeto que abstrai a tabela - * @param string Nome da coluna para cálculo COUNT() - * @return int Quantidade de registros da tabela + * @param mixed Objeto que abstrai a tabela + * @param string Nome da coluna para cálculo COUNT() + * @return int Quantidade de registros da tabela */ public function doCountFromObj($obj, $column = '*') { if ($obj->_tabela == NULL) { diff --git a/ieducar/intranet/include/clsBancoPgSql.inc.php b/ieducar/intranet/include/clsBancoPgSql.inc.php index 2b8a77b..ccf0350 100755 --- a/ieducar/intranet/include/clsBancoPgSql.inc.php +++ b/ieducar/intranet/include/clsBancoPgSql.inc.php @@ -1,83 +1,143 @@ + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + */ + +/** + * clsBancoSQL_ class. + * + * @author Prefeitura Municipal de Itajaí + * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL + * @package Core + * @since Classe disponível desde a versão 1.0.0 + * @version $Id$ + */ + +require_once 'clsConfigItajai.inc.php'; +require_once 'include/clsCronometro.inc.php'; +require_once 'include/clsEmail.inc.php'; + +class clsBancoSQL_ { + + protected $strHost = NULL; // Nome ou endereço IP do servidor do banco de dados + protected $strBanco = NULL; // Nome do banco de dados + protected $strUsuario = NULL; // Usuário devidamente autorizado a acessar o banco + protected $strSenha = NULL; // Senha do usuário do banco + protected $strPort = NULL; // Porta do servidor de banco de dados + + public $bLink_ID = 0; // Identificador da conexão + public $bConsulta_ID = 0; // Identificador do resultado da consulta + public $arrayStrRegistro = array(); // Tupla resultante de uma consulta + public $iLinha = 0; // Ponteiro interno para a tupla atual da consulta + + public $bErro_no = 0; // Se ocorreu erro na consulta, retorna FALSE + public $strErro = ''; // Frase de descrição do erro retornado + public $bDepurar = FALSE; // Ativa ou desativa funções de depuração + + public $bAuto_Limpa = FALSE; // '1' para limpar o resultado assim que chegar ao último registro + + public $strStringSQL = ''; + + /*protected*/var $transactionBlock = FALSE; + /*protected*/var $savePoints = array(); + /*protected*/var $showReportarErro = TRUE; + + /*public*/ var $executandoEcho = FALSE; + + + /* + * Setters + */ + public function setHost($v) { + $this->strHost = (string) $v; + } + + public function setDbname($v) { + $this->strBanco = (string) $v; + } + + public function setUser($v) { + $this->strUsuario = (string) $v; + } + + public function setPassword($v) { + $this->strSenha = (string) $v; + } + + public function setPort($v) { + $this->strPort = (string) $v; + } + + + /* + * Getters + */ + public function getHost() { + return $this->strHost; + } + + public function getDbname() { + return $this->strBanco; + } + + public function getUser() { + return $this->strUsuario; + } + + public function getPassword() { + return $this->strSenha; + } + + public function getPort() { + return $this->strPort; + } + + public function getFraseConexao() { + return $this->strFraseConexao; + } + + + + /** + * Constrói a string de conexão de banco de dados + */ + public function FraseConexao() { + $this->strFraseConexao = ""; + if (!empty($this->strHost)) { + $this->strFraseConexao .= "host={$this->strHost}"; + } + if (!empty($this->strBanco)) { + $this->strFraseConexao .= " dbname={$this->strBanco}"; + } + if (!empty($this->strUsuario)) { + $this->strFraseConexao .= " user={$this->strUsuario}"; + } + if (!empty($this->strSenha)) { + $this->strFraseConexao .= " password={$this->strSenha}"; + } + if (!is_null($this->strPort)) { + $this->strFraseConexao .= " port={$this->strPort}"; + } + } - /* - Monta frase de conexão - */ - /*private*/ function FraseConexao() - { - $this->strFraseConexao = ""; - if (!empty($this->strHost)) - { - $this->strFraseConexao .= "host={$this->strHost} "; - } - if (!empty($this->strBanco)) - { - $this->strFraseConexao .= "dbname={$this->strBanco} "; - } - if (!empty($this->strUsuario)) - { - $this->strFraseConexao .= "user={$this->strUsuario} "; - } - if (!empty($this->strSenha)) - { - $this->strFraseConexao .= "password={$this->strSenha} "; - } - } /* Conecta-se em Banco, com Usuario e Senha, na Porta do Host diff --git a/ieducar/tests/unit/ClsBancoTest.class.php b/ieducar/tests/unit/ClsBancoTest.class.php index c1d0b7b..22e8e5e 100644 --- a/ieducar/tests/unit/ClsBancoTest.class.php +++ b/ieducar/tests/unit/ClsBancoTest.class.php @@ -45,4 +45,22 @@ class ClsBancoTest extends UnitBaseTest { $this->assertNotEquals(TRUE, is_null($db->doCountFromObj($obj))); } + public function testConexao() { + $string = 'host=localhost dbname=ieducardb user=ieducaruser password=password port=5432'; + + $db = new clsBanco(); + $db->setHost('localhost'); + $db->setDbname('ieducardb'); + $db->setUser('ieducaruser'); + $db->setPassword('password'); + $db->setPort('5432'); + + $db->FraseConexao(); + $stringCompare = $db->getFraseConexao(); + $this->assertEquals($string, $stringCompare); + + $db->Conecta(); + $this->assertTrue((bool)$db->bLink_ID); + } + } \ No newline at end of file -- libgit2 0.21.2