connectionString - runTime

Delphi

20/07/2009

Tem como fazer aquela tela do connectionString aparecer em runTime para o usuário setar o servidor, usuario, senha e base de dados!?

Estou precisando urgente disso e num acho.


.lg.

.lg.

Curtidas 0

Respostas

Willian

Willian

20/07/2009

Não sei se é bem isso que vc está procurando, mas dá uma olhada nesse link:

[url]http://www.swissdelphicenter.ch/torry/showcode.php?id=551[/url]

Dá um retorno depois falando se era isso!!

Espero ter ajudado!


GOSTEI 0
Osocram

Osocram

20/07/2009

É aconselhavel vc fazer uma tela pedindo p o usuario digitar apenas esses dados, pois naquela tela aparece mtos dados e o usuario com certeza vai ser perder.

Ou melhor ainda grava isso em um .ini e sempre leia de la... e o editor tbm funcione em cima do .ini.

flw.
Tem como fazer aquela tela do connectionString aparecer em runTime para o usuário setar o servidor, usuario, senha e base de dados!? Estou precisando urgente disso e num acho.



GOSTEI 0
Willian

Willian

20/07/2009

Tem uma sugestão que não é bem das melhores mas pode socorrer você e aí vc ganha tempo para uma versão final.

Seguinte: salva um arquivo TXT na sua área de trabalho (chama de conexao.txt). Renomeia ele para extensão UDL (conexao.udl). Dá um clique duplo nele. É essa a janela que vc está procurando? Possivelmente sim. Se for, faz o seguinte esquema: põe no Create do seu programa para ele carregar o ARQUIVO como connectionstring:

ADOString := ´FILE NAME=´ + ExtractFilePath(Application.ExeName) + ´Conexao.udl´;
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := ADOString;
ADOConnection1.Connected := True;


Nesse código eu deixo o arquivo de conexão no mesmo path do exe.

Para chamar a tela dá um ShellExecute no arquivo diretamente (essa é a parte ´meio porca´). Aí ele vai abrir o arquivo para vc.

Espero que esse código pelo menos te socorra e aí vc ganhe tempo para uma solução profissional. Se achar a resposta ou isso servir dá um retorno aqui para nós.

Boa sorte, Willian


GOSTEI 0
.lg.

.lg.

20/07/2009

Willian,
dos dois tipos de implementação, infelizmente não se aplicam. Usamos o primeiro metodo que vc mencionou pelo link. Queremos mudar isso.

osocram,
Felizmente somente usuários ´avançados´ do sistema que terão permição para ver e alterar as configurações de acesso ao DB. Não posso descartar a possibilidade de mostrar a tela para o usuário. Até porque, quem irá definir em qual tipo de conexão será o usuário. A empresa já tem o diagrama do DB com as tabelas, campos, etc tudo que eles precisam saber para o sistema funcionar. Deixamos claro que eles definiriam em qual banco de dados o sistema funcionaria, indenpendente de uma base! Pre-selecionamos, IB, MSSQL, Oracle, MySQL. É onde o sistema funciona perfeitamente.

Entedes!? É fundamental ter. :wink:
Se ainda sim, tiver como abrir aquela tela... Sei que tem como, mas ainda não achei a maneira.


GOSTEI 0
Osocram

Osocram

20/07/2009

Certo
Mas o que eu quis dizer é que naquela tela tem informções d+
faz uma janela que tras apenas essas informções que ele realmente precisa configurar.

Willian, dos dois tipos de implementação, infelizmente não se aplicam. Usamos o primeiro metodo que vc mencionou pelo link. Queremos mudar isso. osocram, Felizmente somente usuários ´avançados´ do sistema que terão permição para ver e alterar as configurações de acesso ao DB. Não posso descartar a possibilidade de mostrar a tela para o usuário. Até porque, quem irá definir em qual tipo de conexão será o usuário. A empresa já tem o diagrama do DB com as tabelas, campos, etc tudo que eles precisam saber para o sistema funcionar. Deixamos claro que eles definiriam em qual banco de dados o sistema funcionaria, indenpendente de uma base! Pre-selecionamos, IB, MSSQL, Oracle, MySQL. É onde o sistema funciona perfeitamente. Entedes!? É fundamental ter. :wink: Se ainda sim, tiver como abrir aquela tela... Sei que tem como, mas ainda não achei a maneira.



GOSTEI 0
.lg.

.lg.

20/07/2009

Certo Mas o que eu quis dizer é que naquela tela tem informções d+ faz uma janela que tras apenas essas informções que ele realmente precisa configurar.
Vai me dar mais ou menos trabalho!?
Fazer uma tela que possa escolher entre os banco de dados que eu citei acima, buscar todos os servidores disponíveis e por último as Bases do servidor. Ou seja, todo o pequeno trabalho que essa telinha faz.

Eu sempre digo: [i:fcc09c1a47]´Nada é impossível, só tem obstáculos que nos impedem.´[/i:fcc09c1a47].

Felizmente, acabei de obter a informação que precisava. Aqui está:
[b:fcc09c1a47]Unit ADODB[/b:fcc09c1a47]

[b:fcc09c1a47]Function[/b:fcc09c1a47] PromptDataSource(ParentHandle: [b:fcc09c1a47]THandle[/b:fcc09c1a47]; InitialString: [b:fcc09c1a47]WideString[/b:fcc09c1a47]): [b:fcc09c1a47]WideString[/b:fcc09c1a47];

Abre a tela exigida para conexão.
De qualquer forma, eu entendo sua posição em relação a deixa apenas o mínimo possível para o usuário. Deixar um impacto pequeno para o usuário, porém há pessoas que sabem usar todas as opções dessa tela lá na empresa.


GOSTEI 0
Willian

Willian

20/07/2009

Que bom que achou a solução e obrigado por compartilhá-la: eu provavelmente vou usá-la em breve.

Novamente, obrigado.


GOSTEI 0
POSTAR