Ir para conteúdo
Fórum Script Brasil
  • 0

Como Para/iniciar O Serviço Do Interbase/firebird Via Programação Delp


Guest --pedro --

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0
Gostaria de saber como posso iniciar/parar o serviço do interbase/firebir via programação delphi
pedro, falando sobre o FIREBIRD, se o servidor do banco de dados está executando como um serviço em um servidor com SO de tecnologia NT (como Win2K, XP, ...), este procedimento só poderá ser executado por um administrador.

Excluído este entrave, você poderia executar o utilitário "instsvc.exe" que está localizado na pasta bin no local onde foi instalado o servidor.

A pasta de instação do servidor firebird você pode obter do registro do windows, abrindo a chave "HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances" e lendo o valor de "DefaultInstance". Bastaria então concatenar a pasta bin.

Por ex., minha instalação está na pasta "C:\Arquivos de programas\Firebird\Firebird_1_5\";

concatenando "bin" e o nome do programa "instsvc.exe", teríamos a linha de comando a ser executada:

"C:\Arquivos de programas\Firebird\Firebird_1_5\Bin\instsvc.exe"

os parâmetros seriam: start (iniciar serviço) ou stop (parar o serviço)

É o que eu poderia lhe sugerir sobre a questão.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --pedro --

Olá Micheus valeu pela dica mas não consegui usando o start e stop pois no delphi não tem esta função e como eu sou novo na área de desenvolvimento e de delphi principalmente fiquei em duvida. Srá que você poderia ir mais a fundo sobre isso

valeu

pedro

Link para o comentário
Compartilhar em outros sites

  • 0

Opa

fiz aqui um código seguindo o que o Micheus disse e acho que te ajuda...

testei aqui e funcionou...

adicione em Uses

Registry, ShellAPI;

Function ControlFBSvr(bStart: Boolean): Boolean;
var
  szBuff: String;
begin
  with TRegistry.Create do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    Result := OpenKey('SOFTWARE\Firebird Project\Firebird Server\Instances', False);
    if Result then
    begin
      szBuff := ReadString('DefaultInstance') + 'bin\instsvc.exe';
      Result := FileExists(szBuff);
      if Result then
      case bStart of
      True: ShellExecute(0, nil, PChar(szBuff), '-s start', nil, SW_HIDE);
      False: ShellExecute(0, nil, PChar(szBuff), '-s stop', nil, SW_HIDE);
      end;
      CloseKey;
    end;
    Free;
  end;
end;

Pra usar só fazer

ControlFBSvr()

Como parâmetro você passa:

True - Você inicia o serviço

False - Você para ele

aquele -s antes de Start e Stop no ShellExecute é que só com Start/Stop não tava dando,

ai testei e ele pede pra você escolher

-s pra SuperServer

-c pra ClassicServer

Agora tem que ver o seguinte, a versão do seu Firebird... se é completa e tal...

a que instalei aqui é 2.0...

Faça os testes...

abraçox

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Churc.

Talvez o que ainda possa "pegar" é ter que esperar o serviço encerrar, daí teria que verificar a conclusão do encerramento serviço. (apesar que normalmente não é demorado)

Pode não ser o caso do nosso colega Pedro.

Pedro, vale ainda a observação que você só vai encerrar o serviço, se tiver direitos de adiminstrador, já que este é um processo é startado pelo sistema.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...