Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Várias conexões de BD

13 de Novembro de 2012, 12:04 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 45 vezes

PessoALL, bom dia,

 Consigo, no FormDin, trabalhar com múltiplas conexões a bancos de dados?

Estou pensando em unir alguns sistemas que já tenho desenvolvidos, porém eles usam duas bases diferentes e que não podem unificadas.

Obrigado.

Autor: Everton Murilo Rodrigues Silva


88 comentários

  • Bfad1e926a8f3039e7359a6c3c876de2?only path=false&size=50&d=404Everton Murilo Rodrigues Silva(usuário não autenticado)
    21 de Novembro de 2012, 11:25

     

    Luis, bom dia,

     Então, isso é possível? Eu ter mais de uma conexão de banco de dados?

    Obrigado.

    • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
      22 de Novembro de 2012, 11:16

       

      Everton,

      utilizando a classe TPDOConnection padrão do FormDin ela não permite duas conexões ao mesmo tempo uma vez que ela cria uma conexão estatica e não reconecta mais.

      O que voce pode fazer e utilizar a class TDb.class.php  que lhe permite fazer isso, veja no exemplo que está no diretório: base/exemplo/exe_pdo_2.php, lá eu conectei com o mysql e em seguida com o sqlite.

      TDb::setDbType('sqlite'); utilizar o arquivo includes/conn_sqlite.php com os dados da conexão

      TDb::setDbType('mysql'); utilizar o arquivo includes/conn_mysql.php com os dados da conexão

      TDb::setDbType('XYZ'); utilizar o arquivo includes/conn_XYZ.php com os dados da conexão

      Atualize o codigo fonte do FormDin pelo SVN porque a versão que está hoje utiliza arquivo de configuração com a extensão .ini

      Estou terminando uma nova classe de persistencia para ser utilizada no lugar do TPDOConnection que vai poder fazer isso. Por enquanto veja se a TDb já te ajuda.

      Abraço.

      • Bfad1e926a8f3039e7359a6c3c876de2?only path=false&size=50&d=404Everton Murilo Rodrigues Silva(usuário não autenticado)
        23 de Novembro de 2012, 11:04

         

        Luís, bom dia,

         Ok, vou testar essa classe.

        Obrigado.

        []'s

        • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
          8 de Dezembro de 2012, 9:31

           

          Everton,

          se ainda estiver precisando trabalhar com várias conexões ao mesmo tempo, de uma olhada na classe TDAO() que publiquei hoje, e tambem no exemplo base/exemplos/exe_teste_conexao.php para voce ter uma ideia de como utiliza-la.

          Ainda estou trabalhando nesta classe, qualquer sugestão é bem vinda.

          Abraço.

          • Bfad1e926a8f3039e7359a6c3c876de2?only path=false&size=50&d=404Everton Murilo Rodrigues Silva(usuário não autenticado)
            4 de Janeiro de 2013, 14:53

             

            Luis, boa tarde,

            Teste e funcionou muito bem, mas aí me veio uma dúvida: o gerador_vo_dao.php faz o extend na TPDOConnection.

             Para utilizar essa ferramenta e também a classe TDAO, só preciso alterar o texto do extends na página do gerador?

            Obrigado.

            • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
              4 de Janeiro de 2013, 21:21

               

              Everton,

              A princípio sim, mas a classe TDAO possui recursos mais completos de persistencia que terei que fazer uma outro gerador_dao para ela.

              Faça o seguinte para testar:

              Altere o extend para TDAO conforme voce já sugeriu e no metodo construtor da classe voce tem que informar o nome da tabela. Exemplo:

              class MenuDAO extends TDAO
              {
                  public function MenuDAO()
                  {
                      $this->setTableName('tb_uf');
                      $this->setDbType('mysql'); // para utilizar o arquivo includes/config_conexao_mysql.php
                      // ou então fazer toda aconfiguração aqui
                      /*
                      $this->setDbType('postgres');
                      $this->setUsername('xxxxx');
                      $this->setPassword('yyyyyy');
                      $this->setHost('xxx.xxx.xxx.xxx');
                      */
                  }
              }

              //uma outra maneira seria voce extender a TDAO para cada conexão que voce deseja

              class MySqlDAO extends TDAO
              {
                  public function MySqlDAO()
                  {
                      $this->setDbType('mysql');
                      $this->setUsername('xxxxx');
                      $this->setPassword('yyyyyy');
                      $this->setHost('xxx.xxx.xxx.xxx');
                  }
              }
              // e depois utilizar esta classe para extender as classes DAOs
              class MenuDAO extends MysqlDAO
              {
                  public function menuDAO()
                  {
                      $this->setTableName('tb_uf');
                  }
              }

              Teste isso ai, vamos ver se funciona.

              Abraço.

              • B55d2612fe3d7f424f179990a8342e06?only path=false&size=50&d=404alberto allan da silva rodrigues(usuário não autenticado)
                2 de Agosto de 2015, 17:06

                 

                Olá Pessoal,

                Novato no FormDin, não consegui (ainda) passar do exemplo do CRUD postado pelo Luis Eugênio, no Fórum. 

                O erro acontece no teste da conexão realizado através da linha TPDOConnection::test(); dentro do arquivo index.php.

                Aparece a seguinte mensagem:

                O arquivo includes/config_conexao.php n�o est� configurado corretamente! 

                As linhas do tutorial são as seguintes: 

                define('BANCO','SQLITE');define('DATABASE','bancoDados/bdCrud.s3db');define('UTF8_DECODE',0);

                Tenho certeza que o SQLite3 está operacional, pois rodei normal o "HOW TO" - Use SQLite and PHP do XAMPP howto guides. 

                Tentei conectar criando um Banco no MYSQL, via Admin do XAMPP Control Panel v3.2.1, mudando o includes\config_conexao.php, porém, aconteceu o mesmo erro. 

                Alguém de plantão no domingo prá me ajudar? :-) 

                De toda forma, obrigado!

                • B55d2612fe3d7f424f179990a8342e06?only path=false&size=50&d=404alberto allan da silva rodrigues(usuário não autenticado)
                  3 de Agosto de 2015, 17:43

                   

                  OBS: Testei no Windows 8 e no 7. Acontece o mesmo problema:

                  Olá Pessoal,

                  Novato no FormDin, não consegui (ainda) passar do exemplo do CRUD postado pelo Luis Eugênio, no Fórum. 

                  O erro acontece no teste da conexão realizado através da linha TPDOConnection::test(); dentro do arquivo index.php.

                  Aparece a seguinte mensagem:

                  O arquivo includes/config_conexao.php n�o est� configurado corretamente! 

                  As linhas do tutorial são as seguintes:  

                  define('BANCO','SQLITE');define('DATABASE','bancoDados/bdCrud.s3db');define('UTF8_DECODE',0); 

                  Tenho certeza que o SQLite3 está operacional, pois rodei normal o "HOW TO" - Use SQLite and PHP do XAMPP howto guides.  

                  Tentei conectar criando um Banco no MYSQL, via Admin do XAMPP Control Panel v3.2.1, mudando o includes\config_conexao.php, porém, aconteceu o mesmo erro.  

                  De toda forma, obrigado!

Essa comunidade não possui posts nesse blog