Programa na inicialização
Boa tarde amigos
Tenho um software que funciona como servidor que está na inicialização da maquina (C:\Documents and Settings\Alexandre\Menu Iniciar\Programas\Inicializar), para que toda vez que o computador for desligado ele seja executado.
O problema é que ele usa BD (Firebird 2.1), e na maioria das vezes ele entra antes do firebird startar, conseqüentemente dando erro na hora de abrir.
Ai, muitas vezes o meu cliente reclama que a aplicação não está funcionando e quando vou ver o software servidor não abrir por causa do erro citado.
Alguém teria uma idéia para solucionar esse problema????
Tenho um software que funciona como servidor que está na inicialização da maquina (C:\Documents and Settings\Alexandre\Menu Iniciar\Programas\Inicializar), para que toda vez que o computador for desligado ele seja executado.
O problema é que ele usa BD (Firebird 2.1), e na maioria das vezes ele entra antes do firebird startar, conseqüentemente dando erro na hora de abrir.
Ai, muitas vezes o meu cliente reclama que a aplicação não está funcionando e quando vou ver o software servidor não abrir por causa do erro citado.
Alguém teria uma idéia para solucionar esse problema????
Japa192
Curtidas 0
Respostas
Wdrocha
31/10/2008
O seu programa está em rede??
caso não esteja...tente usar o Firebird Embedded....
caso não esteja...tente usar o Firebird Embedded....
GOSTEI 0
Japa192
31/10/2008
sim....está em rede
GOSTEI 0
Nerdex
31/10/2008
Olá Japa,
Cara, para isso você deveria implementar um controle para capturar o estado sobre o status do serviço do FireBird.
Veja na unit WinSvc do teu Delphi as especificações ([b:9baa94e5f0]windows services[/b:9baa94e5f0]), como esta:
[size=9:9baa94e5f0][color=darkblue:9baa94e5f0]Código de exemplo:[/color:9baa94e5f0][/size:9baa94e5f0]
[size=9:9baa94e5f0][color=green:9baa94e5f0][url]http://www.infojet.cz/program/delphi/tips/tip0027.html[/url][/color:9baa94e5f0][/size:9baa94e5f0]
Cara, para isso você deveria implementar um controle para capturar o estado sobre o status do serviço do FireBird.
Veja na unit WinSvc do teu Delphi as especificações ([b:9baa94e5f0]windows services[/b:9baa94e5f0]), como esta:
function ServiceGetStatus(sMachine, sService : string) : DWord; var schm : SC_Handle; //service control manager handle schs : SC_Handle; // service handle ss : TServiceStatus; // service status dwStat : DWord; // current service status begin dwStat := -1; // connect to the service control manager schm := OpenSCManager( PChar(sMachine), Nil, SC_MANAGER_CONNECT); // if successful... if(schm > 0)then begin // open a handle to the specified service // we want to query service status schs := OpenService( schm, PChar(sService), SERVICE_QUERY_STATUS); // if successful... if(schs > 0)then begin // retrieve the current status //of the specified service if (QueryServiceStatus( schs, ss)) then begin dwStat := ss.dwCurrentState; end; // close service handle CloseServiceHandle(schs); end; // close service control manager handle CloseServiceHandle(schm); end; Result := dwStat; end;
[size=9:9baa94e5f0][color=darkblue:9baa94e5f0]Código de exemplo:[/color:9baa94e5f0][/size:9baa94e5f0]
[size=9:9baa94e5f0][color=green:9baa94e5f0][url]http://www.infojet.cz/program/delphi/tips/tip0027.html[/url][/color:9baa94e5f0][/size:9baa94e5f0]
GOSTEI 0