Definição da Conexão no momento da instalação

Olá pessoal

Recentemente desenvolvi uma aplicacao que ficaria hospedada em várias pastas dentro de um mesmo servidor, todas compartilhando a mesma biblioteca.
Meu objetivo era deixar em cada pasta uma copia da aplicação acessando o banco de dados especifico daquela pasta.
Dentro do servidor haveriam varios bancos de dados com estrutura identica, cada um deles servindo de repositorio para um cliente diferente. Em outras palavras, a mesma aplicacao acessaria seu proprio banco de dados, dependendo da pasta onde ela estivesse instalada.
Entretanto, percebi que o scriptcase nao oferece essa facilidade no ato da publciacao. Pelo contrario, ele já pede a definicao de uma conexao fixa. Neste caso, mesmo que eu descompacte a aplicacao separadamente em varias pastas, todas elas estarao apontando para uma conexao unica, isto é, para o mesmo banco de dados, exatamente o que eu nao queria.
Nao faz sentido descompactar a mesma aplicacao em 10 pastas diferentes para acessar o mesmo banco de dados.
Deveria ser possivel definir a conexao no ato da instalacao, e que as configuracoes ficassem gravadas na pasta onde a aplicacao foi descompactada.
Ou entao, deveria ser possivel definir de alguma forma, seja atraves de arquivos de configuracao, ou de menus especiais, a conexao para a aplicacao recem instalada.
A solução paliativa que encontrei para o problema foi gerar varias publicacoes, cada uma com um nome diferente, e assim conseguir descompactar corretamente.
Gostaria que os desenvolvedores do scriptcase resolvessem esse tipo de problema.
Obrigado.

passe via url o nome da conexão e altere a conexão dinamicamente.
Um prod só, uma app só, uma conexão para cada cliente.

Publicação avançada para todas apontando na mesma pasta.
Ou dinâmica como o Haroldo falou

Prezados amigos
Agradeço a atenção recebida, e fiquei bastante empolgado com a dica, pois ela simplificaria o processo.
Pelo que pude entender, eu nao precisaria publicar a mesma aplicação várias vezes e fazer várias copias para várias pastas, correto?
Tudo o que eu precisaria fazer seria publicar apenas uma vez, e descompactar a aplicação numa unica pasta, e passar a identificacao da conexao através da URL, e a partir dai a aplicação se conectaria com o banco de dados A,B ou C.
Os amigos poderiam apresentar um exemplo de código mostrando como eu poderia fazer isso?
Desde já fico agradecido pela gentileza.

Olá amigo.

Essa primeira possibilidade eu nao entendi.

Aplicação Login.
Evento onApplicationInit:

header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
sc_reset_change_connection();
sc_change_connection("infinitus",[empresa]);

chamada: https://dominio/sistema/app_login/?empresa=nome_conexão

Olá, bom dia!

Também tenho esta mesma dúvida do Emilio. Porém, gostaria de saber esta macro altera apenas conexões existentes no projeto. Se sim, existe alguma maneira de modificar o BD sem que a conexão esteja definida no projeto?

Olá amigos.
Não sei se a dica irá funcionar pois ela considera que eu deve cadastrar previamente todas as conexões no meu projeto antes da publicação.
É provável que eu não saiba quantos bancos de dados estão instalados em determinado servidor. Podem ser 3 ou 30.
O que eu desejava inicialmente era colocar em cada pasta uma cópia específica para cada banco. Mas se eu posso usar a mesma aplicação numa diretório raiz, o ideal é que eu passe a informação de conexão via url. Mas se eu criar um novo banco no mesmo servidor eu não queria ter que publicar novame te para essa nova conexão.
Não sei se fui claro.

Não Sr.

No projeto tenha apenas uma conexão: padrão.

Em produção crie uma nova conexão para cada banco de dados.

Olá, bom dia!

Fiz o procedimento que vocês sugeriram, mas não obtive sucesso.

No evento onAplicationInit do login, eu coloquei o código:

sc_reset_change_connection();
sc_change_connection(“conexao” ,[nova_conexao]);

Porém, ao executar o sistema e informar a conexão desejado, a mesma não é encontrada.

Como faz a chamada ao login?

Olá, Haroldo!

O login foi definido como a aplicação inicial, não faço chamada para ele.

a minha sugestão foi passar a conexão via url.
http://sistema/login/?nova_conexao=XXXXXX

Como vc está alimentando a global [nova_conexao]?

Ah, também estou fazendo dessa maneira, porém o banco não é modificado. Está permanecendo o que foi definido na publicação.

Ola jeferson, tem como vc colocar o codigo fonte que voce está usando, juntamente com o evento e a url que vc está usando na hora da chamada?

eu utilizo isso a anos e não tenho problema.

Qual o nome da sua conexão habilitada na aplicação?

O código do OnAplicationInit do login é:

sc_reset_change_connection();
sc_change_connection(“conn_mysql”,[rnp]);

A URL que estou usando é: http://sistema/login/?rnp=nome_da_conexao

Haroldo, o nome da conexão é conn_mysql.

Ola
Boa noite;

Na intenção de poder ajudar;

Tenho um projeto onde acesso varias unidades de uma empresa, cada unidade um banco diferente.
No controle login tenho um campo select onde selecione a unidade e coloco o conteudo desse campo em uma variavel global acessando somente este banco que coloquei com a macro sc_change_conection. Dentro do menu tenho outro controle onde é possivel o usuario alterar de unidade se o usuario estiver cadastrado na nova unidade e a senha for a mesma.

Tambem tenho casos onde o projeto é o mesmo em subdominios diferentes; onde cada subdominio é de uma empresa e configuro a conexao na _lib (sub.dominio.com/_lib) em bancos diferentes.