• 0
Sign in to follow this  
renanbg

Conexão ao banco em tempo de execução

Question

Amigos, em tempo de projeto eu tenho meu database ligado ao banco de dados local e como active = True. Tudo setado no Object Inspector. 

Aí, no meu DPR faço a conexão com o banco do servidor, em tempo de execução, usando um arquivo .INI. 

  Application.Initialize; 
  Application.MainFormOnTaskbar := True; 
  Application.CreateForm(TFrmDm, FrmDm); 

  FrmDm.dbCompras.Connected := False; 

  if not FileExists(ExtractFilePath(ParamStr(0)) + 'Config.ini') then 
  begin 
    MessageBox(Application.Handle, 'Arquivo de configuração, Config.ini, não encontrado.', 'Gestão de Compras RM', MB_ICONERROR); 
    Exit; 
  end; 

  Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'Config.ini'); 
  Dir_banco := Ini.ReadString('Banco', 'Dir', '***'); 
  Ini.Free; 

  if Dir_banco = '***' then 
  begin 
    MessageBox(Application.Handle, 'Configuração de acesso ao banco de dados incorreta.', 'Gestão de Compras RM', MB_ICONERROR); 
    Exit; 
  end; 

  if Copy(Dir_banco, Length(Dir_banco), 1) <> '\' then 
     Dir_banco := Dir_banco + '\'; 

  frmdm.dbCompras.DatabaseName := Dir_banco + 'CADASTRO.FDB'; 

 Frmdm.dbCompras.Connected := True; 

De uns dias pra cá, o sistema teima em não respeitar esse INI. 
Ele insiste em conectar no caminho que está fixo no datamodule. 

Já debuguei e ele busca a informação do banco no servidor corretamente, mas ao chegar na hora de conectar = True, ele diz que não acha o banco local. 

Alguém mais passou por isso ou tem alguma dica pra me dar?

Edited by renanbg

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'Config.ini'); 
  Dir_banco := Ini.ReadString('Banco', 'Dir', '***'); 
  Ini.Free; 

OBS: O problema está no comando de leitura do arquivo INI

veja esses exemplos de como fazer a leitura de um arquivo INI

https://www.google.com.br/search?ei=NcbtWpXzOYGlwgTp5rGwDA&q=ler+arquivo+ini+delphi&o que=ler+arquivo+ini+&gs_l=psy-ab.1.0.0l4j0i22i30k1l6.271488.274939.0.277673.16.9.0.7.7.0.160.754.0j6.6.0....0...1c.1.64.psy-ab..3.13.848...0i67k1j0i131k1.0.RNpLmjorUB0

abraço

Share this post


Link to post
Share on other sites
  • 0

Na verdade a leitura está correta. Debugando notei que o problema pode ser pelo fato de eu manter o database ativo em tempo de projeto.

Share this post


Link to post
Share on other sites
  • 0

achei que voce estava deixando o database desativado para fazer a leitura para  depois ativa-lo novamente.

OBS: Se voce fizer um teste em qualquer form que precise de conexão com a tabela, o database é ativado automaticamente, mas não é desativado depois ....  então não esqueça de fazer isso antes de executar o programa.

abraço

Share this post


Link to post
Share on other sites
  • 0

Eu mantenho o database e o transaction ativados em tempo de desenvolvimento, mas vou ter que lembrar de desativar antes de compilar então.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this