[firebase-br] Timer em UDF

Carlos H. Cantu listas em warmboot.com.br
Ter Abr 12 14:41:07 -03 2005


Não faça isso! Quando uma UDF é chamada, o servidor fica esperando o
resultado dela para continuar o processamento. Colocar um timer dentro
de uma UDF é pedir pra ter dor de cabeça.

[]s
Cantu
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br

AT> Ola amigos...

AT> Estava tentando colocar um TIMER dentro de uma UDF para
AT> realizar algumas operacoes independente de uma chamada às funções
AT> da UDF. Qual não foi a minha surpresa ao perceber que o timer
AT> simplesmente não dispara.... 

AT> O código ficou mais ou menos assim:

AT> type
AT>  TMeuTimer = class(TComponent)
AT>   private
AT>     Timer: TTimer;
AT>     procedure OnTimer(Sender: TObject);
AT>   public
AT>     constructor Create(AOwner: TComponent); override;
AT>     destructor Destroy; override;
AT>   end;  

AT> var
AT>   MeuTimer : TMeuTimer;

AT> constructor TMeuTimer.Create(AOwner: TComponent);
AT> begin
AT>   inherited Create(AOwner);
AT>   Timer          := TTimer.Create(Self);
AT>   Timer.OnTimer  := OnTimer;
AT>   Timer.Interval := 3000;
AT>   Timer.Enabled  := True; 
AT> end;

AT> destructor TMeuTimer.Destroy;
AT> begin
AT>   Timer.Free;
AT>   Timer := nil;
AT>   inherited Destroy;
AT> end;

AT> procedure TMeuTimer.OnTimer(Sender: TObject);
AT> begin
AT>   DeleteFile('C:\Temp.txt');
AT> end;

AT> initialization
AT>   MeuTimer := TMeuTimer.Create(nil);

AT> finalization
AT>   MeuTimer.Free;
AT>   MeuTimer := nil;


AT> O interessante, é que tenho certeza de que a classe está
AT> sendo criada, mas o timer não dispara, como se o FIREBIRD não
AT> permitisse THREADs em UDFs.... 


AT> Alguém já tentou fazer algo do tipo?

AT> []'s

AT> Alexandre Trindade
AT> Analista de Sistemas
AT> ______________________________________________
AT> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
AT> Para editar sua configuração na lista, use o endereço
AT> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
AT> Para consultar mensagens antigas:
AT> http://search.gmane.org/search.php?groupirebase





Mais detalhes sobre a lista de discussão lista