PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Firebird 1.5 Embed... Memory Fault #45012

20/06/2004

0

Amigos,

Alguém que utiliza o Firebird 1.5 Embed, poderia reportar-me se ocorre algum erro ´feio´ de Memory Fault que termina por fechar a aplicação?
Este erro é intermitente está ocorrendo de forma provocada -> conecto e desconecto do banco várias vezes e quando ocorre, normalmente, é na 3ª desconexão...

Logicamente, não há nenhuma necessidade de ficar conectando e desconectando do banco várias vezes, foi apenas um teste que fiz e me deparei com isso... é uma aplicação desktop muito simples, com apenas 3 tabelas que, normalmente, eu utilizaria um banco Access, mas decidi por testar o FB Embed...

Creio haver alguma relação com o fato de que na verdade ele cria uma instância de servidor a cada conexão e acho q esta instância não está sendo liberada após a desconexão...
Gostaria de saber se algum dos colegas tem certeza de que o problema seja minha esta minha, até agora, suposição...

Estou usando Firebird 1.5 Embed ( Final Release 4290), com dbExpress + driver da borland (dbexpint.dll) e Delphi 7... na raiz da aplicação estão o o firebird.conf (default), o firebird.msg e a fbembed.dll ; e na subpasta data\ está o banco...

Agradeço desde já.
[]´s
Vinicius.


Vinicius2k

Vinicius2k

Responder

Posts

21/06/2004

Vinicius2k

Amigos,

Descobri duas coisas :
1 - este erro só ocorre sobre plataforma NT (2K/XP)... 9X/ME funciona perfeitamente...
2 - se vc carregar a fbembed.dll no Create do DataModule e descarregar no Destroy o erro não ocorre... ou seja forçando a dll a ficar carregada o tempo todo, de forma independente da SQLConnection o problema é contornado...
Cheguei a testar, inclusive outros drivers DBX (UIB e Upscene) e com ambos o erro ocorreu...
A solução foi :
...
var
  dmd: Tdmd;
  hFBEMBED: THandle;

implementation

{$R *.dfm}

uses Windows;

procedure Tdmd.DataModuleCreate(Sender: TObject);
begin
  hFBEMBED:= LoadLibrary(´fbembed.dll´);
end;

procedure Tdmd.DataModuleDestroy(Sender: TObject);
begin
  if hFBEMBED <> INVALID_HANDLE_VALUE
    then FreeLibrary(hFBEMBED);
end;
...

Bem, creio que posso fazer esta pequena aplicação desktop usando o FB Embed...
T+


Responder

Gostei + 0

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

Aceitar