Conexão em Tempo de Execução

Bom dia,

Estou com uma dúvida, estamos trabalhando em um sistema em que cada cliente tem seu banco de dados, e o mesmo pode estar um um servidor diferente. Ex. O usuário 1 tem usa o banco1 no servidor1, o usuário2 usa o banco3 no servidor4.

Quando usuário se loga eu vejo pra qual servidor e banco ele deve ser redirecionado, o meu problema é que não consigo fazer essa modificação em tempo de execução, p SC me permite apenas trocar as conexões por conexão pré-definidas no SC.

Alguém saberia me dizer quais são as variáveis de ambiente que guardam as informações da conexão.

Obrigado

Acho que não tem jeito de fazer o que você esta querendo não.

sc_change_connection(“Conexao_Antiga”, “Conexao_Nova”)
Troca dinamicamente as conexões das aplicações

Ex. 1: Trocar as conexões:
sc_change_connection(“Conexão_Antiga01”, “Conexão_Nova01” ; “Conexão_Antiga02”, “Conexão_Nova02”);

Pode mudar várias no mesmo comando, usando o separador “;”

Ex. 2: Pode usar variáveis:
sc_change_connection({Senha}, [Teste] ; “Minha_Conexão”, [Global_Conexão]);
sc_change_connection([Conexão_Global], [Nova_Conexão]);

Pode trocar, também, a conexão principal.
As trocas só têm efeito nas aplicações seguintes.

Ex. 3: Para apagar as trocas feitas:
sc_reset_change_connection();

Mas Caroline ele que trocar conexões em ter que criá-las no scriptcase você sabe se com o seu exemplo é possível? Será que esta macro não somente funciona com as conexões já existentes no scriptcase?

Pelo que entendi, ele já deve ter as conexões previamente criadas para cada banco, ele só quer fazer a troca conforme o usuário que se loga.

A criação dinâmica de conexão é uma solicitação nossa antiga, chegamos a desenvolver algo para V4/V5, mas o esquema mudou a partir da V6.

Risos, ele não fala em criar a conexão dinamicamente, entende-se que os dados da conexão (nome da conexão já criada) esta salva no registro do usuário, bastando apenas trocar a conexão dinamicamente para acessar o banco relacionado ao usuário.

Mas como esse tópico já está ficando no passado e o próprio interessado não se manifesta, não vale apena ficar aqui discutindo o que ele quis dizer aqui, que se bem tenho notado é um costume aqui, pois já vi muitos posts que o próprio interessado desaparece.

E tem muitos posts que a gente que se dispõe a ajudar fica tentando adivinhar o que é, pois não são bem explicados.

Muito Bom ter você de volta ao fórum Haroldo.

Interpretação de texto gente, ele não usa a palavra dinamicamente mas ele explica que:

Quando usuário se loga eu vejo pra qual servidor e banco ele deve ser redirecionado, o meu problema é que não consigo fazer essa modificação em tempo de execução, [b]p SC me permite apenas trocar as conexões por conexão pré-definidas no SC[/b].
Ou seja ele já sabe que dá pra trocar de conexão se ela estiver criada no SC, ele quer saber se tem como criar a conexão em tempo de execução!! E a resposta é simples, com recursos nativos do SC não, precisaria mexer no código fonte diretamente, aí vai depender mais da fome do que da vontade de comer!!!

Bom, amigos. Eu também preciso de uma macro que gere uma conexão dinamicamente. Entretanto ela ainda não existe no SC.

Andei buscando o arquivo que guarda as configurações das conexões e achei um onde vários campos do XML são criptografados.
O arquivo é “_lib/conf/prod/prod.config.php”.

Perguntas:

  • Alguém pode confirmar se é esse arquivo mesmo?
  • Alguém pode dizer qual o método usado na criptografia?

Assim poderíamos editar o arquivo dinamicamente, duplicando as chaves e alterando somente o nome da nova base e da nova conexão.

Uma outra sugestão menos “fina” mas que pode funcionar bem é a de manter algumas conexões “sobrando” e associando os novos clientes com elas. O problema é que será preciso monitorar o serviço para não deixar faltar conexões.

Abraços,

Orlando Donin
Dbtech Tecnologia

o arquivo e esse mesmo, ele é gerado e atualizado pelo formulário que cria as conexões.