Fórum Verificar se o FB está ativo #179689
04/09/2003
0
Como posso verificar se o servidor Firebird está ativo no início da aplicação, para evitar que o usuário a execute com o banco fora do ar?
Abueno_silva
Curtir tópico
+ 0
Responder
Posts
24/09/2014
Franklin Mei
Cedro do Abaeté, 24 de Setembro de 2014 - 10:22
Se Eu entendi Você quer saber se o Firebird Server está executando.
Copiei esta função de algum lugar na internet mas ela retorna sempre sim mesmo quando deveria retornar não
function ServerIsRunning : boolean;
begin
if (FindWindow('IB_Server', 'InterBaseServer') > 0) or (FindWindow('FB_Server', 'FireBird Server') = 0) then
ServerIsRunning := True
else
ServerIsRunning := False;
end;
Meu irmão acho que esse pessoal que já conhece sobre o assunto deveria explicar as coisas com mais simplicidade - "PARECE QUE ELES GOSTAM DE DIFICULTAR AS COISAS PARA PASSAREM A IMPRESSÃO DE QUE SÃO A NATA DA NATA DA PROGRAMAÇÃO DE COMPUTADORES" o que vai totalmente contra, porque quanto mais simples melhor já pregava o Steve Jobs.
Boa sorte na sua busca vou continuar com a minha!
Franklin de Sousa
Se Eu entendi Você quer saber se o Firebird Server está executando.
Copiei esta função de algum lugar na internet mas ela retorna sempre sim mesmo quando deveria retornar não
function ServerIsRunning : boolean;
begin
if (FindWindow('IB_Server', 'InterBaseServer') > 0) or (FindWindow('FB_Server', 'FireBird Server') = 0) then
ServerIsRunning := True
else
ServerIsRunning := False;
end;
Meu irmão acho que esse pessoal que já conhece sobre o assunto deveria explicar as coisas com mais simplicidade - "PARECE QUE ELES GOSTAM DE DIFICULTAR AS COISAS PARA PASSAREM A IMPRESSÃO DE QUE SÃO A NATA DA NATA DA PROGRAMAÇÃO DE COMPUTADORES" o que vai totalmente contra, porque quanto mais simples melhor já pregava o Steve Jobs.
Boa sorte na sua busca vou continuar com a minha!
Franklin de Sousa
Responder
Gostei + 0
25/09/2014
Franklin Mei
Cedro do Abaeté, 25 de Setembro de 2014 - 09:21
Meu irmão encontrei esse código aqui ontem ainda - para mim funcionou prefeitamente
Primeiro a Função
function IsFireBirdRunning: boolean;
const
PROCESS_TERMINATE = $0001;
var
Co: BOOL;
FS: THandle;
FP: TProcessEntry32;
s: string;
begin
FS := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FP.dwSize := Sizeof(FP);
Co := Process32First(FS, FP);
while integer(Co) <> 0 do
begin
s := s + FP.szExeFile + #13;
Co := Process32Next(FS, FP);
end;
CloseHandle(FS);
if pos('fbserver', s) > 0 then
IsFireBirdRunning := true
else
IsFireBirdRunning := false;
end;
Agora o execução
procedure TforPrincipal.actExecucaoFireExecute(Sender: TObject);
begin
if IsFireBirdRunning = True then
Mensagem('FireBird Server 2.5.3.26778 Versão 2.5 sendo Executado')
else
Mensagem('Servidor Firebird está Desativado ou não Instalado');
end;
Espero realmente ter ajudado.
Franklin de Sousa
Meu irmão encontrei esse código aqui ontem ainda - para mim funcionou prefeitamente
Primeiro a Função
function IsFireBirdRunning: boolean;
const
PROCESS_TERMINATE = $0001;
var
Co: BOOL;
FS: THandle;
FP: TProcessEntry32;
s: string;
begin
FS := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FP.dwSize := Sizeof(FP);
Co := Process32First(FS, FP);
while integer(Co) <> 0 do
begin
s := s + FP.szExeFile + #13;
Co := Process32Next(FS, FP);
end;
CloseHandle(FS);
if pos('fbserver', s) > 0 then
IsFireBirdRunning := true
else
IsFireBirdRunning := false;
end;
Agora o execução
procedure TforPrincipal.actExecucaoFireExecute(Sender: TObject);
begin
if IsFireBirdRunning = True then
Mensagem('FireBird Server 2.5.3.26778 Versão 2.5 sendo Executado')
else
Mensagem('Servidor Firebird está Desativado ou não Instalado');
end;
Espero realmente ter ajudado.
Franklin de Sousa
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)