Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-09-2004
AngelMarvin AngelMarvin is offline
Miembro
 
Registrado: jun 2004
Ubicación: Santa Cruz de la Sierra
Posts: 42
Poder: 0
AngelMarvin Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 20-09-2004
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Muestranos codigo...
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 21-09-2004
AngelMarvin AngelMarvin is offline
Miembro
 
Registrado: jun 2004
Ubicación: Santa Cruz de la Sierra
Posts: 42
Poder: 0
AngelMarvin Va por buen camino
Hola! , gracias por el interés .

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.

Última edición por AngelMarvin fecha: 21-09-2004 a las 07:32:05.
Responder Con Cita
  #4  
Antiguo 21-09-2004
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
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.
__________________
El malabarista.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:11:52.


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
Copyright 1996-2007 Club Delphi