ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

FDConnection connected = True?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Nov 09, 2021 4:46 pm    Assunto: FDConnection connected = True? Responder com Citação

Uso o INI para definir qual é o caminho do banco que vai ser conectado o FDConnetcion, porém as vezes testo aqui e ja aconteceu de eu ativar o connection e o caminho direto no Firedac Connetcion Editor que abre quando clicamos 2X no componente FDConnection, e acabo esquecendo e mando pra produção. Ai da erro pq tenta achar o banco na minha base ja que o FDConnection ficou ativo.

Ele é chamado antes do FormPrincipal no Auto-create dos forms, sendo assim ja tentei no onCreate dele colocar um comando para se ele estiver conectado ele desconectar, mais não chega no comando dentro do datamodule. Gera o erro antes ao criar o DataModule

Código:
Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Title := RS_NomeSistema;
  Application.CreateForm(TDMConexao, DMConexao);
  Application.CreateForm(TFormPrincipal, FormPrincipal);


Preciso que o DM seja executado antes e tmb verificar se esta ativo o FDConnection desativar sem gerar erro pro cliente.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcieldeg
Colaborador
Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011
Mensagens: 1054
Localização: Vitória - ES

MensagemEnviada: Qua Nov 10, 2021 1:23 pm    Assunto: Responder com Citação

Tente implementar o método Loaded do formulário, setando a propriedade "Connected" do seu componente para "False". Esse método é executado após o formulário ser criado e imediatamente após o arquivo .dfm ser lido, assim ele sobrescreve a propriedade setada.

Obs: Essa procedure não está nas propriedades do componente, você precisa implementar manualmente na classe do formulário.
_________________
"Olha a interface da IDE! Será que ela é? Será que ela é? DELPHI!"
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Nov 10, 2021 5:36 pm    Assunto: Responder com Citação

marcieldeg escreveu:
Tente implementar o método Loaded do formulário, setando a propriedade "Connected" do seu componente para "False". Esse método é executado após o formulário ser criado e imediatamente após o arquivo .dfm ser lido, assim ele sobrescreve a propriedade setada.

Obs: Essa procedure não está nas propriedades do componente, você precisa implementar manualmente na classe do formulário.


Boa tarde marcieldeg

Implementei assim
Código:
procedure TDMConexao.Loaded;
begin
  inherited Loaded;
  FDConnection.Connected := False;
  FDConnection.Params.Database := EmptyStr;
end;


Mais o erro insiste em aparecer se o FDConnection estiver com sua propriedade connection True.

Se ao menos ele ignorasse o erro e conectasse ao banco que esta co INI, mais ele fica gerando erro.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Nov 11, 2021 8:51 am    Assunto: Responder com Citação

Coloque o Datamodule antes do form principal, talvez assim o erro não acontecerá mais, exceto se houver alguma coisa que é executada antes.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Nov 11, 2021 9:33 am    Assunto: Responder com Citação

johnny-walker escreveu:
Coloque o Datamodule antes do form principal, talvez assim o erro não acontecerá mais, exceto se houver alguma coisa que é executada antes.


bye
Bom dia johnny-walker, o DM já é executado antes do form principal. Alias no caso deste sistema ele deve ser executado antes.

O problema é esquecer o Connection ativo e mandar pros clientes.

As vezes esqueço ele preenchido quando estou fazendo manutenção e quero que o banco esteja conectado em modo de projeto.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Nov 16, 2021 11:47 am    Assunto: Responder com Citação

marcieldeg escreveu:
Tente implementar o método Loaded do formulário, setando a propriedade "Connected" do seu componente para "False". Esse método é executado após o formulário ser criado e imediatamente após o arquivo .dfm ser lido, assim ele sobrescreve a propriedade setada.

Obs: Essa procedure não está nas propriedades do componente, você precisa implementar manualmente na classe do formulário.


Deu certo agora.
Antes eu tinha feito assim
Código:
procedure TDMConexao.Loaded;
begin
  inherited Loaded;
  FDConnection.Connected := False;
  FDConnection.Params.Database := EmptyStr;
end;


E o processo de conexão no oncreate, ai dava erro
Agora mudei assim
Código:
procedure TDMConexao.Loaded;
begin
  inherited Loaded;
  if FDConnection.Params.Database <> EmptyStr then
  begin
    FDConnection.Connected := False;
    FDConnection.Params.Database := EmptyStr;
  end;
  SetDatabaseConnection;
end;


Ou seja este método estou chamando logo em seguida
SetDatabaseConnection que é o que gera o ini.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB