| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Nov 09, 2021 4:46 pm Assunto: FDConnection connected = True? |
|
|
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 |
|
 |
marcieldeg Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011 Mensagens: 1054 Localização: Vitória - ES
|
Enviada: Qua Nov 10, 2021 1:23 pm Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Nov 10, 2021 5:36 pm Assunto: |
|
|
| 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 |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qui Nov 11, 2021 8:51 am Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Nov 11, 2021 9:33 am Assunto: |
|
|
| 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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Nov 16, 2021 11:47 am Assunto: |
|
|
| 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 |
|
 |
|