Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   OleVariants (https://www.clubdelphi.com/foros/showthread.php?t=14417)

AngelMarvin 20-09-2004 17:34:47

OleVariants
 
Hola a todos.
he desarrollado un servidor de aplicaciones el cual utilizo una variable de tipo OleVariant y el el codigo bloqueo esta variable para trabajar con ella (VarArraryLock) y cargarle valores y luego la desbloqueo (VarArrayUnLock) e inmediatamente despues al utilizarla me genera la excepción: 'Variant or safe array is locked.'

Si alguien me puede dar una luz le agradecería muchísimo.

mamcx 20-09-2004 22:11:04

Muestranos codigo...

AngelMarvin 21-09-2004 07:27:02

Hola! , gracias por el interés :p.

El programa recibe el codigo biometrico de una huella dactilar (Digital Persona) y otra que recupera de una base de datos.

Aca te muestro un poco del codigo resumido para q se entienda puntualmente:

Código:

 
  {*}  HuellaBio:= VarArrayCreate([0,616],varByte);
            BufferBio:= VarArrayLock(HuellaBio);
 
                  /// aca lleno el variante a través del arreglo de bytes.
            for Desp:= 0 to 616
            do BufferBio[Desp]:= ArregloDactilar[Desp];
 
            VarArrayUnlock(HuellaBio);
 
  {*} HuellaBD:= VarArrayCreate([0,Longitud-1],varByte);
            BufferBD:= VarArrayLock(HuellaBD);
 
                  /// aca lleno el variante a través del arreglo de bytes.
            for Desp:= 0 to 616
                  do BufferBD[Desp]:= ArregloBD[Desp];
 
  {*} VarArrayUnlock(HuellaBD);
 
            TemplateBD.Import(HuellaBD); /// TemplateBD es un objeto
            VarClear(HuellaBD);
            TemplateBio.Import(HuelaBio);
            VarClear(HuellaBio);
 
  Y acá se produce la excepción: (Verificador es un objeto que provee el sdk del lector)
 

  Verificador.Compare(TemplateBD,TemplateBio
,m_verifyOk,m_score,m_threshold,m_learning,m_security);
 

Por cierto, este codigo corre sobre Win2003.

Pues espero q este claro. Por favor si puedes ayudarme te lo agradecería el resto de mi vida. Esto es lo ultimo que me falta para entregar un sistema y me esta partiendo la cabeza.

mamcx 21-09-2004 17:55:27

Una soluciona a lo bestia: y si le quitas por completo los VarArrayLock y Unlock? No te debe dar ningun problema prescindir de ellos porque se usan para darle mas desempeño (como en los dataset Disable/EnableControls), pero el tamaño de la matriz y el tipo de datos no lo justifica.... Otra seria COPIAR la matriz a otra matriz y esa pasarla a verificador.


La franja horaria es GMT +2. Ahora son las 15:03:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi