Autor Tópico: Como mudar e manter uma conexao ativa usando sc_change_connection  (Lida 1564 vezes)

etfb

  • Novato
  • *
  • Mensagens: 2
    • Email
Como mudar e manter uma conexao ativa usando sc_change_connection
« Online: Fevereiro 19, 2014, 07:04:40 pm »
Prezados,

Nao posso me dizer um excelente conhecedor de PHP, mas meu uso com o programa me permitiu contornar varias situações que anteriormente dependeria de terceiros.

Tenho agora um projeto próprio, que desejo publicar e a ideia é simples assim:

> Similar a uma loja virtual, cujo codigo PHP seria unico, teria que usar varios bancos de dados onde cada um seria de um projeto e/ou cliente;

Desta forma (ainda em testes de producao) criei um seletor para qual banco quero ir e a necessidade é entao fazer a troca da conexao para aquele local.

Ocorre que a macro sc_change_connection (pois nao tem muitos detalhes no help) me induz a crer que posso utilizá-la do banco ZERO para o banco UM, DOIS, TRES, etc numa simples passagem de parametros e que isto reflete a partir da aplicacao seguinte, que no caso seria o LOGIN.

Desta forma publiquei todo o projeto como conexao ao banco ZERO (raiz) e os demais (que sao espelhos deste em estrutura), têm que ser acessados automaticamente apos a escolha do usuario na tela inicial.

Só que nao funciona...ele se perde e sempre "fixa" a coisa querendo ler o banco que foi feita a publicacao.

Dai como alternativa rapida para contornar isto, me vi obrigado a publicar 6 vezes o projeto (cada um numa sub-pasta no wwwroot) para entao ele entender que é ali que vai trabalhar.

Pergunto se alguem tem/usou/conhece melhor esta macro ou possa sugerir uma outra alternativa, pois pretendo que tenha mais de 20 bancos porem todos num unico codigo que será facil/rapido controlar a publicacao e implemento.

Grato desde ja e no aguardo, onde abaixo coloco o codigo que usei.

Att,

Emerson.

====
Para funcionar, criei um blank e nele coloquei o seguinte codigo:

//     Coloco em variavel global o nome da conexao ao qual terá que ser redirecionado
//      O banco principal é: conn_mysql
//      Os demais seriam: conn_banco1, conn_banco2, etc...

//     Muda a conexao de acordo com a loja selecionada
 
$conn_ini = "conn_mysql";
 
if ( [var_global_conn_act] == 1 )                                  // Abre conexao do projeto selecionado e avança para login ja naquele banco
{
       sc_change_connection( $conn_ini, [var_global_conn_nom] );
 
//    Garante que seja reletido na aplicacao seguinte

       sc_redir( login );
}
else                                                                                   // Retorna conexao inicial e retorna ao seletor principal
{
       sc_change_connection( [var_global_conn_nom], $conn_ini );
 
       sc_redir( sel_prj );
}
 
//     End

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Como mudar e manter uma conexao ativa usando sc_change_connection
« Responder #1 Online: Fevereiro 19, 2014, 07:46:47 pm »
Eu utilizo sem problemas.


Na url: http://cominio.com/sistema/login/login.php?conexao=1


No login, onscriptinit:

sc_change_connection( conexao inical, [conexao] );

etfb

  • Novato
  • *
  • Mensagens: 2
    • Email
Re:Como mudar e manter uma conexao ativa usando sc_change_connection
« Responder #2 Online: Março 01, 2014, 10:58:17 pm »
Haroldo,

Agradeço pelo retorno, contudo pergunto como no proprio Login (aplicacao ja em uso) sera assumida uma nova conexao ?

Havia entendido que ele leria a partir da proxima e dai que meu Login entra, até pq sao usuarios e senhas diferentes.

Sabe me dizer em qual versao da aplicacao isto funciona ?, embora tenha todas elas disponiveis.

Grato e no aguardo.

Att,

Emerson

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Como mudar e manter uma conexao ativa usando sc_change_connection
« Responder #3 Online: Março 02, 2014, 10:07:32 am »
Funicioma desde a versao 4.

Uma aplicação sc na verdade são muitos scrpts.

ariltavares

  • Novato
  • *
  • Mensagens: 16
Re:Como mudar e manter uma conexao ativa usando sc_change_connection
« Responder #4 Online: Julho 03, 2014, 09:25:47 am »
Bom dia amigo, no sistemas que eu dou manutenção essa função funciona corretamente, mas tentei usa-la em outra aplicação e não tive exito.

segue o código funcionando corretamente:

if ([cliid] == 'cliente1')   
{
     [conect] = 'conn_cliente1';

}

if ([cliid] == 'cliente2')   
{
     [conect] = 'conn_cliente2';

}


sc_reset_change_connection();

sc_change_connection ("conn_app", [conect]);

Estou usando esse código no OnapplicationInit, em um formulário de controle.

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Como mudar e manter uma conexao ativa usando sc_change_connection
« Responder #5 Online: Julho 03, 2014, 12:22:49 pm »
Uso também sem problema, no meu esquema eu direciono pelo subdominio, crio as conexões nomeadas de acordo com o subdomínio e pronto, uso a macro pra alterar a conexão.