IB EXPERT NAO CONSEGUE ABRIR BANCO DE DADOS

Delphi

01/10/2008

Caros colegas

Uso D7 + DbExpress + Firebird 2.1

Estou implementando uma rotina de captura de imagem pela WebCam e gravando no Banco de Dados. Até aí tudo bem. Esta Funcionando 100¬ porém, necessitando de fazer alterações em algumas tabelas, utilizo o IB Expert, e este não consegue abrir o Banco de Dados e está informando a seguinte mensagem:

Attempting to connect to:
C:\sisep\sisep\BaseDados\SISEP.FDB
 
Connecting... Failed!
------------------------------------
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
cannot attach to password database.
 
Attempting to connect to services manager... Failed!
------------------------------------

Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
cannot attach to password database.
 
Disconnecting from database... Passed!


Este é o motivo que venho pedir ajuda ao nobres colegas.
Para Solucionar o problema, fiz um logoff, mas não resolveu. Tive que então desligar sumariamente o PC para depois ligá-lo aí sim o IB Expert conseguiu abrir o Banco de Dados. A Rotina foi adaptada da Revista do clube delphi 79 - um artigo do Adriano Santos.
Abaixo informo-lhes a rotina:

procedure TFrmServidor.btnCapturaClick(Sender: TObject);
var
  DirNomeFoto: string;
  NomeFoto: string;
  FileStream : TFileStream;
  BlobStream : TStream;
    //////////////////
  procedure ConverteParaJpeg(ACaminhoFoto: string);
  var
    cjBmp: TBitmap;
    cjJpg: TJpegImage;
    strNomeSemExtensao: string;
    AFoto: TImage;
  begin
    AFoto:= TImage.Create(FrmFichaFunc);
    AFoto.Parent := FrmFichaFunc;
    AFoto.Visible := False;
    AFoto.Picture.Bitmap.LoadFromFile(ACaminhoFoto + ´.bmp´);

    cjJpg := TJPegImage.Create;
    cjBmp := TBitmap.Create;

    cjBmp.Assign(AFoto.Picture.Bitmap);
    cjJpg.Assign(cjBMP);

    cjJpg.SaveToFile(ACaminhoFoto + ´.jpg´);
    DeleteFile(ACaminhoFoto + ´.bmp´);
    cjJpg.Free;
    cjBmp.Free;
    AFoto.Free;
  end;
begin

 fCaptura := TfCaptura.Create(Self);
  try
    with fCaptura, camCamera, dm, cds_Servidor do
    begin

      DirNomeFoto := ExtractFilePath(Application.ExeName) +
      LimpaString(FieldByName(´SERV_RG´).AsString) + ´.bmp´;

      NomeFoto := ExtractFilePath(DirNomeFoto) +
      Copy(ExtractFileName(DirNomeFoto),1, Length(ExtractFileName(DirNomeFoto))-4);

      FichierImage := ExtractFileName(DirNomeFoto);

      if fCaptura.ShowModal = mrOk then
       begin
        CaptureImageDisque;
        ConverteParaJpeg(NomeFoto);
      if not (DtSrc.State in ([dsEdit,dsInsert])) then
      DtSrc.DataSet.Edit;

      try
      begin
       FileStream:=TFileStream.Create(NomeFoto + ´.jpg´,
                fmOpenRead or fmShareDenyWrite);
       BlobStream:=
       DtSrc.DataSet.CreateBlobStream(DtSrc.DataSet.FieldByName(´FOTO´),
       bmWrite);
       try
        BlobStream.CopyFrom(FileStream,FileStream.Size);
       finally
       begin
        FreeAndNil(FileStream);
        FreeAndNil(BlobStream);
       end;
      end;
      end
      except
       begin
        ShowMessage(´Problemas com memória.´);
        Exit;
       end;
      end;
      
      if DtSrc.DataSet.State in ([dsInsert,dsEdit]) then
      begin
       DtSrc.DataSet.Post;
       (DtSrc.DataSet as TClientDataset).ApplyUpdates(0);
      end;

        //FieldByName(´FOTO´).AsString := NomeFoto + ´.jpg´;
    end;
    end;
  finally
    FreeAndNil(fCaptura);
  end;
end;



Helio Nascimento

Helio Nascimento

Curtidas 0

Respostas

Otto

Otto

01/10/2008

mesmo sendo localhost,ja tentou por o ip da maquina ou
localhost:c:\banco.fdb
:wink:


GOSTEI 0
Helio Nascimento

Helio Nascimento

01/10/2008

Caro amigo Otto

Voce matou. Abriu com o IP da máquina. Agora fica a pergunta: o que aconteceu. Algo errado no meu código?
Se alguém souber, responda-me, estou curioso!!

Abraços/Hélio


GOSTEI 0
Otto

Otto

01/10/2008

seu código ta perfeito.
é que as vezes acontece isso.
principalmente em .net

abraço, boa sorte.


GOSTEI 0
Eniorm

Eniorm

01/10/2008

A recomendação é que sempre seja usado informando o IP, assim a aplicação estará conectando via TCP/IP.


GOSTEI 0
POSTAR