Jump to content
Fórum Script Brasil
  • 0

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


Guest --pedro --
 Share

Question

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...