-
Notifications
You must be signed in to change notification settings - Fork 6
Conectando com mais um Banco de Dados ao mesmo tempo
No capitulo Conectando no Banco de Dados vimos como são definidos os parâmetros para conectar em apenas um banco ou conexão default. Nessa situação não precisamos fazer nada, pois o formDin sabe qual conexão de banco usar.
Atenção os componentes geralmente usam apenas a conexão default. Abaixo uma lista de componentes
- combinarSelects
- Autocomplete
- Online Search
- Autocomplete composto com Online Search
Quando temos mais de uma conexão precisamos informar para cada método da DAO qual será a conexão usada.
No exemplo abaixo mostra como informar que deseja usar conexão default. Lembrando a conexão default deve ser informada no APLICACAO/includes/config_conexao.php
mais informações em Conectando no Banco de Dados. Para isso será utilizado método parent::connect(null,true,null,null);
public static function selectNovos( $datInicio, $datFim ) {
parent::connect(null,true,null,null);
$sql = self::getSqlSelectNovos($datInicio, $datFim);
$result = self::executeSql($sql);
return $result;
}
Abaixo um código de exemplo, onde uma classe DAO utiliza outra conexão diferente da conexão default.
Uma boa pratica é concentrar todas as configurações em um único ponto. Veja mais informações em Usando arquivo de configuração ou arquivo INI., o método ServidorConfig::getInstancia()->getPerfilAcesso()
procura fazer isso.
private $tpdo = null;
public function __construct() {
$tpdo = New TPDOConnectionObj();
$tpdo->setDBMS(DBMS_MYSQL);
$tpdo->setHost('127.0.0.1');
$tpdo->setDataBaseName('form_exemplo');
$tpdo->setUsername('form_exemplo');
$tpdo->setPassword('123456');
$tpdo->connect();
$this->setTPDOConnection($tpdo);
}
public function getTPDOConnection()
{
return $this->tpdo;
}
public function setTPDOConnection($TPDOConnection)
{
$this->tpdo = $TPDOConnection;
}
O método getInfoConnect()
recebe as informações e disponibiliza para a DAO.
public static function getInfoConnect() {
$perfilBancoAcesso = ServidorConfig::getInstancia()->getPerfilAcesso();
$configArray= array(
'DBMS' => $perfilBancoAcesso['DBMS']
,'PORT' => $perfilBancoAcesso['PORT']
,'HOST' => $perfilBancoAcesso['HOST']
,'DATABASE' => $perfilBancoAcesso['DATABASE']
,'USERNAME' => $perfilBancoAcesso['USERNAME']
,'PASSWORD' => $perfilBancoAcesso['PASSWORD']
);
return $configArray;
}
No exemplo abaixo o método getUltimoArtigoModificadoJ3()
recebe as informações do getInfoConnect()
e faz uso do parent::connect
.
public static function getUltimoArtigoModificadoJ3() {
$configFile = null;
$boolRequired = true;
$boolUtfDecode = null;
$configArray = self::getInfoConnect();
parent::connect($configFile,$boolRequired,$boolUtfDecode,$configArray);
$sql = self::getSQLUltimoArtigoModificadoJ3();
$result = self::executeSql($sql);
$result = self::selectArtigoById( $result['ID'][0] );
return $result;
}
Como foi visto no padrão formDin toda classe estendem TPDOConnection. O método parent::connect
pertence a classe TPDOConnection
.
EVITE USAR vários arquivos configFile para conectar em vários bancos. O primeiro parâmetro $configFile
existe por uma questão de retro compatibilidade.
/***
* Establishes the connection to the database. the main connection is informed in $configfile
* the secondary connections are informed in $configArray. The $configArray prevails over $configfile.
* In this case $configfile will be ignored.
*
* @param string $configFile - path of file with main connection,
* @param boolean $boolRequired - connection is mandatory
* @param boolean $boolUtfDecode-
* @param array $configArray - config array for others connections
* @return boolean
*/
Uma boa pratica é usar um arquivo com todos os parâmetros de configuração. Assim será fácil achar e alterar as configurações. Entre as possíveis configurações está as informações de acesso ao banco de dados.
As opções mais comuns são:
- Arquivo texto do tipo INI. Geralmente
NOME.INI
- Arquivo PHP retornando um Array PHP. Exemplos de como no caso do Laravel FrameWork, Joomla CMS ou WordPress
Índice completo - Aprendendo formDin em etapas
Conheça os projetos relacionados ao formDin
- FormDin Last Release - ultima versão estável
- SysGen - Gerador de código para FormDin
- formDocker - Ambiente para o FormDin em Docker
- FormDin5 - FormDin 5 sobre o Adianti FrameWork
- SysGenAd - Gerador de código para FormDin 5 usando o Adianti FrameWork
Aprendendo formDin em etapas
- Baixando o formDin
- Instalado e Configurando Ambiente de Desenvolvimento
- Usando XDebug
- Informações técnicas
- Primeira Aplicação
- Entendendo a primeira aplicação
- Criando Menu Básico
- Conectando com um Banco de Dados
- Usando DAO e VO
- Grid Básico
- Componentes Básicos
- O Formulário
- Relatórios em PDF
- Componentes Avançados
- Autenticando o usuário
- Perfis de acesso
- Grid Avançado
- Conectando com mais um Banco de Dados ao mesmo tempo
- Automatizando a criação de aplicação
- Segurança
- Layout e CSS
- API REST
- Arquitetura do FormDin
- Versões e versionamento
- Usando o Eclipse
- Usando o VS Code
- História do formDin
- Usando PHPUnit para fazer testes unitários
- Usando Composer
- Usando Docker
- Microsoft SQL Server