Fórum BD corrompido como saber se está ou não.... #54437

29/12/2005

0

Eu achei esta linha de comando para verificarse está corrompido ou não mas a janela do DOS aparece e some rapidamente e eu nem sei se esta corrompido ou não e quero fazer com que o sistema assim que reiniciace diagnostica-se o BD e se estiver corrompido tentará corrigilo automaticamente se a inservernção do usuário e desse uma mensagem se o BD esteja ainda corrompido.

WinExec(Pchar(´gfix -v -full F5.FBD´),1);


Max.sgj

Max.sgj

Responder

Posts

29/12/2005

Afarias

WinExec não vai te ajudar nisso...

...vc tem q obter o output do GFIX e sendo assim algo como CreateProcess seria uma opçõa adequada.

Uma outra opção (que não usa o GFIX) é usar a ServicesAPI -- vc pode usar um componente como IBValidationService (IBX) em lugar do GFIX


T+


Responder

Gostei + 0

29/12/2005

Max.sgj

WinExec não vai te ajudar nisso... ...vc tem q obter o output do GFIX e sendo assim algo como CreateProcess seria uma opçõa adequada. Uma outra opção (que não usa o GFIX) é usar a ServicesAPI -- vc pode usar um componente como IBValidationService (IBX) em lugar do GFIX T+


Estou utilizando Delphi 5 não tem IBValidationService


Responder

Gostei + 0

29/12/2005

Max.sgj

Nunca utilizei CreateProcess, como se utiliza?


Responder

Gostei + 0

29/12/2005

Max.sgj

Como utiliza o IBValidationService1


Responder

Gostei + 0

29/12/2005

Afarias

|Estou utilizando Delphi 5 não tem IBValidationService

tem sim, basta vc atualizar o IBX


|Nunca utilizei CreateProcess, como se utiliza?

se bem me lembro, existem alguns exemplos no site da ClubeDelphi


|Como utiliza o IBValidationService1


ex:

var
  S: string;
begin
  Memo1.Lines.Clear;  // 1 memo no form
  with IBValidationService1 do
  begin
    ServerName := ´localhost´;
    Protocol := TCP;
    DatabaseName := ´SeuBanco.IB´;
    Params.Values[´user_name´] := ´sysdba´;
    Params.Values[´password´] := ´masterkey´;
    LoginPrompt := False;
    Active := True;
    // todas as propriedades acima podem ser preenchidas
    // em tempo de projeto
    try
      Options := [ValidateDB, ValidateFull];  // gfix -v -f
      ServiceStart;
      S := GetNextLine;
      if S = EmptyStr then
        Memo1.Lines.Add(´arquivo ok´)
      else
        repeat
          Memo1.Lines.Add(S);
          S := GetNextLine;
        until (S = EmptyStr);
    finally
      Active := False;
    end;
  end;
end;



T+


Responder

Gostei + 0

29/12/2005

Max.sgj

Esta dando a mensagem de erro...
Cannot perform operation --service is attached.


Responder

Gostei + 0

29/12/2005

Afarias

lembre-se q para validar a base não pode haver outras conexões no banco.

se estiver dando RUN no Delphi, certifíque-se que o componente não está ativo em tempo de projeto


T+


Responder

Gostei + 0

29/12/2005

Max.sgj

lembre-se q para validar a base não pode haver outras conexões no banco. se estiver dando RUN no Delphi, certifíque-se que o componente não está ativo em tempo de projeto T+


Está tudo como false mas a mensagem continua...


Responder

Gostei + 0

29/12/2005

Max.sgj

Eu não sei utilizar este componente preciso de ajuda...


Responder

Gostei + 0

29/12/2005

Afarias

Qual a versão do Interbase/Firebird Server? e é SuperServer ou Classic?


T+


Responder

Gostei + 0

29/12/2005

Max.sgj

Ferebird 1.5.2.4731


Responder

Gostei + 0

29/12/2005

Afarias

Classic ou SS ?


T+


Responder

Gostei + 0

29/12/2005

Max.sgj

Classic ou SS ? T+


Está escrito Firebird 1.5 Server Manager


Responder

Gostei + 0

29/12/2005

Max.sgj

Qual a versão do Interbase/Firebird Server? e é SuperServer ou Classic? T+



É SuperServer...


Responder

Gostei + 0

29/12/2005

Afarias

só pra ter certeza...

...compile o programinha (com o código q passei) e antes de executá-lo de um shutdown na base usando:

gfix base.gdb -shut -force 0 -user sysdba -pass masterkey

depois de testar o programa coloque a base on-line novamente

gfix base.gdb -online -user sysdba -pass masterkey



T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar