Fórum Executar um comando antes de compilar... #392778

20/12/2010

0

Ola...

Primeiramente vou apresentar meu ambiente de desenvolvimento: Delphi 7, Banco de dados Postgres e componente de acesso Zeus.

Tenho uma rotina que faz o seguinte, no evento oncreate do meu DataModule eu pego algumas configuração de um arquivo texto como: HOST, PORT, USER, DATABASE... no qual o sistema irá se conectar...

até ai tranquilo...

o problema é que quando vou gerar o executavel por exemplo estou conectado na base de testes. exe:
HOST: 10.1.1.1
DATABESE: TESTE
USER: USUARIO
PORT: 1234

a questão é, se eu esquecer de DESCONECTAR do banco antes de compilar, quando o meu cliente for executar o programa antes mesmo de passar pelo evento do oncreate que é onde estar meu ZCONECTION (componente que faz o acesso ao banco) e tambem onde passo os parametros para a conexão, ele recebe uma mensagem de erro informando que não foi possivel conectar na base TESTE... que é onde eu estava conectado no ato da compilação...

Teria alguma forma de colocar uma rotina para desconectar da base que estou antes de gerar o meu executavel?
Km Sistemas

Km Sistemas

Responder

Posts

20/12/2010

Elton Rosa

Olha o que acho que poderia fazer é no OnCreate colocar por exemplo: ZConnection1.Conected := False...

Assim desconectaria do banco de dados..

Mas posta aí sua rotina que você mencionou..

Responder

Gostei + 0

20/12/2010

Km Sistemas

Olha o que acho que poderia fazer é no OnCreate colocar por exemplo: ZConnection1.Conected := False...

Assim desconectaria do banco de dados..

Mas posta aí sua rotina que você mencionou..




Então, eu ja tenho la no oncreate do meu programa isso:


ZConnection1.Conected := False;



a questão é que antes de passar nesta linha ja da o erro...
como foi compilado como conectado quando cria o dm ja vem conectado...  ai da o erro
Responder

Gostei + 0

20/12/2010

Paulo Andrade

Olha o que acho que poderia fazer é no OnCreate colocar por exemplo: ZConnection1.Conected := False...

Assim desconectaria do banco de dados..

Mas posta aí sua rotina que você mencionou..




Então, eu ja tenho la no oncreate do meu programa isso:


ZConnection1.Conected := False;



a questão é que antes de passar nesta linha ja da o erro...
como foi compilado como conectado quando cria o dm ja vem conectado...  ai da o erro
. .   Você pode insserir os parâmetros de conexão no código do executável.   Post o código do DM para que possa analisar.
Responder

Gostei + 0

20/12/2010

Km Sistemas

Seguinte...

O meu problema esta sendo que antes de passar no evento oncreate do meu DM ja da o erro...
ou seja, qualquer coisa que eu coloque no OnCreate vai da o mesmo erro..

Em todos os casos ta aqui o código que tenho no OnCreate do DM


      ZDBConecta.Disconnect;
      ZDBConecta.HostName := ParamStr(3);
      ZDBConecta.Port     := StrToInt(ParamStr(4));
      ZDBConecta.User     := ParamStr(5);
      ZDBConecta.Database := ParamStr(6);
      ZDBConecta.Connect;


Responder

Gostei + 0

20/12/2010

Leonardo Xavier

coloque ocódigo do seu aplcativo aqui somente a inicializaçao do mesmo:

EX.:

.
.
Aplication.Initialize;
.
.
.
.
Application.Run;
.
.
.

Responder

Gostei + 0

20/12/2010

Km Sistemas

coloque ocódigo do seu aplcativo aqui somente a inicializaçao do mesmo:

EX.:

.
.
Aplication.Initialize;
.
.
.
.
Application.Run;
.
.
.




Esta aqui:

      Application.Initialize;
      Application.Title := 'Menu Geral';
      Application.CreateForm(TDM_Con, DM_Con);
      Application.CreateForm(TForm_Menu, Form_Menu);
      Application.Run;


Responder

Gostei + 0

20/12/2010

Leonardo Xavier


      Application.Initialize;
      Application.Title := 'Menu Geral';
      Application.CreateForm(TDM_Con, DM_Con);

      DM.ZConnection1.Conected := False;

      Application.CreateForm(TForm_Menu, Form_Menu);
      Application.Run;

Responder

Gostei + 0

20/12/2010

Km Sistemas


      Application.Initialize;
      Application.Title := 'Menu Geral';
      Application.CreateForm(TDM_Con, DM_Con);

      DM.ZConnection1.Conected := False;

      Application.CreateForm(TForm_Menu, Form_Menu);
      Application.Run;




fiz assim:

      Application.Initialize;
      Application.Title := 'Menu Geral';
      Application.CreateForm(TDM_Con, DM_Con);
      DM_Con.ZDBConecta.Connected := False;
      Application.CreateForm(TForm_Menu, Form_Menu);
      Application.Run;



mais não adiantou...
continua dando o erro de host não encontrado...
Responder

Gostei + 0

20/12/2010

Leonardo Xavier


      Application.Initialize;
      Application.Title := 'Menu Geral';
      Application.CreateForm(TDM_Con, DM_Con);

   DM_Con.ZDBConecta.Disconnect;
      DM_Con.ZConnection1.Conected := False;       Application.CreateForm(TForm_Menu, Form_Menu);       Application.Run;

Responder

Gostei + 0

20/12/2010

Km Sistemas


      Application.Initialize;
      Application.Title := 'Menu Geral';
      Application.CreateForm(TDM_Con, DM_Con);

   DM_Con.ZDBConecta.Disconnect;
      DM_Con.ZConnection1.Conected := False;       Application.CreateForm(TForm_Menu, Form_Menu);       Application.Run;




Fiz assim:

      Application.Initialize;
      Application.Title := 'Menu Geral';
      Application.CreateForm(TDM_Con, DM_Con);
      DM_Con.ZDBConecta.Disconnect;
      Application.CreateForm(TForm_Menu, Form_Menu);
      Application.Run;


mais ainda naum deu certo... 
Responder

Gostei + 0

20/12/2010

Km Sistemas

Alguém tem mais alguma sugestão???
Responder

Gostei + 0

22/12/2010

Km Sistemas

alguem me ajude!!!!
Responder

Gostei + 0

27/12/2010

Km Sistemas

Andei lendo sobre diretivas de compilação no delphi... {$ifdef}
Será que elas podem resolver esse meu problema?
Responder

Gostei + 0

27/12/2010

Km Sistemas

Consegui....
Obrigado a todos...

Fiz o seguinte, editei a classe ZConnection do Zeus para que naum venha conectado....

até...
Responder

Gostei + 0

30/12/2010

Km Sistemas

como eu coloco esse topico como finalizado?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar