Como efetuar um Shutdown

Firebird

06/04/2004

Tem como o Firebird mandar uma mensagem aos usuario conectados no banco antes de se efetuar um shutdown ? Tipo um shutdown programado para um tempo definido...

obs: para dar tempo das estacoes de trabalho encerrar a execucao do programa.

Ex: Ao ser executado o comando de shutdown do firebird(eu nao sei q comando é esse) todas as estacoes conectadas ao banco receberiam uma mensagem na tela, como abaixo :

´O programa precisa ser encerrado em 5 minutos´

é apenas um exemplo....


Marfred

Marfred

Curtidas 0

Respostas

Emanoel

Emanoel

06/04/2004

Olá.

Para dar o shutdown, você pode tentar:


procedure FBShutDown;
var Wnd: HWND;
    ProcId: DWORD;
    hProcess: THandle;
begin
  Wnd := FindWindow(PChar(´IB_Guard´), nil);
  if Wnd<>0 then begin
    GetWindowThreadProcessId(Wnd, @ProcId);
    hProcess := OpenProcess(PROCESS_TERMINATE,false,ProcId);
    PostMessage(Wnd, WM_QUIT, 0, 0);
    WaitForSingleObject(hProcess, INFINITE);
  end;
  Wnd := FindWindow(PChar(´IB_Server´), nil);
  if Wnd<>0 then begin
    GetWindowThreadProcessId(Wnd, @ProcId);
    hProcess := OpenProcess(PROCESS_TERMINATE,false,ProcId);
    PostMessage(Wnd, WM_QUIT, 0, 0);
    WaitForSingleObject(hProcess, INFINITE);
  end;
end;



Obs.: Funcionou no FB 1.0 / Interbase :roll:

T+


GOSTEI 0
Maicongabriel

Maicongabriel

06/04/2004

Olá. Para dar o shutdown, você pode tentar:

procedure FBShutDown;
var Wnd: HWND;
    ProcId: DWORD;
    hProcess: THandle;
begin
  Wnd := FindWindow(PChar(´IB_Guard´), nil);
  if Wnd<>0 then begin
    GetWindowThreadProcessId(Wnd, @ProcId);
    hProcess := OpenProcess(PROCESS_TERMINATE,false,ProcId);
    PostMessage(Wnd, WM_QUIT, 0, 0);
    WaitForSingleObject(hProcess, INFINITE);
  end;
  Wnd := FindWindow(PChar(´IB_Server´), nil);
  if Wnd<>0 then begin
    GetWindowThreadProcessId(Wnd, @ProcId);
    hProcess := OpenProcess(PROCESS_TERMINATE,false,ProcId);
    PostMessage(Wnd, WM_QUIT, 0, 0);
    WaitForSingleObject(hProcess, INFINITE);
  end;
end;

Obs.: Funcionou no FB 1.0 / Interbase :roll: T+


:shock: :shock: :shock:
isso não é o [i:5e536cb83b]shutdown[/i:5e536cb83b], é derrubar o servidor! e não é isso que o colega deseja!
Ele seseja enviar uma mensagem antes do shutdown!
Coisa que não existe como opção junto ao shutdown (do GFix) e que deve ser implementada de outra forma!


GOSTEI 0
Emanoel

Emanoel

06/04/2004

Caro maicongabriel:

Derrubar o servidor e shutdown não é a mesma coisa? Se não for, gostaria de saber a diferença.

O título da pergunta é esta: ´Como efetuar um Shutdown´, e eu comecei respondendo: ´Para dar o shutdown, você pode tentar: ´.
Então a minha resposta foi apenas sobre o shutdown.

Agora a outra dúvida, como enviar uma mensagem, o colega poderia usar Client/Server Sockets. Um bom exemplo, seria um programa de Chat.

Dê uma olhada aqui:
http://delphiforum.icft.com.br/forum/viewtopic.php?t=19332

Estou certo maicongabriel??? :?

T+


GOSTEI 0
Maicongabriel

Maicongabriel

06/04/2004

Caro maicongabriel: Derrubar o servidor e shutdown não é a mesma coisa? Se não for, gostaria de saber a diferença. O título da pergunta é esta: ´Como efetuar um Shutdown´, e eu comecei respondendo: ´Para dar o shutdown, você pode tentar: ´. Então a minha resposta foi apenas sobre o shutdown. Agora a outra dúvida, como enviar uma mensagem, o colega poderia usar Client/Server Sockets. Um bom exemplo, seria um programa de Chat. Dê uma olhada aqui: http://delphiforum.icft.com.br/forum/viewtopic.php?t=19332 Estou certo maicongabriel??? :? T+


Ok [b:ea77f605b9]Emanoel[/b:ea77f605b9]. Mas se você não sabe o que é o ShutDown de uma base de dados, então não responda!


GOSTEI 0
Emanoel

Emanoel

06/04/2004

:?: :?: :?:


GOSTEI 0
POSTAR