FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Hola REVINFOR.
Cita:
Sin embargo pareciera, que una vez obtenida la huella y pasada a cadena, te podrías ahorrar esa última conversión comparándola directamente con las almacenadas en la tabla. A modo de ejemplo:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#2
|
|||
|
|||
Gracias por la pronta respuesta...
Sere mas explicito, en realidad son dos procesos que se aplican: 1) registrar la huella a los usuarios para controlar la asistencia, este procedimiento se realiza SOLO UNA VEZ POR USUARIO para guardar el template de comparacion para realizar el registro de asistencia. Al momento de guardar los datos se pasa el array de bytes a una cadena que se guarda en la base. (El primer ejemplo del primer post). 2) Registro de asistencia, para que el usuario registre la asistencia, el lector de huella captura los datos en un array de bytes y se procede a comparar con las huellas que se tienen guardadas en formato de cadena, solo que para que se puedan comparar ambos datos, cada cadena la tengo que convertir en un array de bytes. Ejemplo: bAsistencia = array of bytes corresponde al usuario Perez TUsuarios = Tabla con los 1420 usuarios Como pueden ver, la funcion Comparar es la que quiero optimizar, esta funcion iria mas o menos asi
Gracias por el apoyo.... revisare el codigo que acaban de publicar para ver como lo podemos optimizar el proceso... |
#3
|
||||
|
||||
Y para que lo conviertes en bytes? Porque no lo pasas a string en la BD? o a un Integral?
Parte del truco de hacer algo rapido es elegir la estructura de datos mas optima para el caso, y reducir/eliminar los pasos de conversion.
__________________
El malabarista. |
#4
|
||||
|
||||
Hola REVINFOR.
Cita:
Por otro lado la búsqueda secuencial es lenta, voy a reestructurar mi sugerencia anterior para ver si de ese modo me explico mejor.
Saludos Edito: Me olvidaba..., Para el caso específico de ADO:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 15-10-2014 a las 18:20:53. |
#5
|
|||
|
|||
Hola nuevamente....
Revisando sus sugerencias... hay algunos puntos que se tienen que aclarar: 1. Es verdad que seria mas sencillo, cambiar la huella capturada a cadena y comparar directamente con las cadenas que tengo guardadas en la base, pero el SDK que viene con el lector me solicita trabajar con un array de bytes. 2. En un principio, cree un procedimiento almacenado, donde buscaba con un select la cadena capturada dentro de la tabla, pero en todas mis pruebas no acertaba ningun usuario, al revisar la documentacion del lector, resulta que no se trabaja con una imagen identica para verificar la huella, sino una matriz de puntos donde el algoritmo analiza la similitud de los datos capturados, algo asi como un camino de grafos, donde se tiene un porcentaje de exito y fracaso (lo ultimo es algo que deduzco por que el algoritmo es propio del lector y este esta embebido en un componente activeX). Por los motivos anteriores es que aplico las conversiones que pueden ver, y ahi se encuentra la necesidad de optimizar este proceso... |
#6
|
||||
|
||||
Hola nuevamente.
Entiendo... Una consulta ¿ El array de bytes que devuelve el lector es de longitud fija ? (te hago esta pregunta para ver si se le puede buscar la vuelta por el lado del almacenamiento). Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
Hola...
Revisando la tabla, todos tienen una cadena de 3264 caracteres, asi que parece que el lector trabaja con un array de 1632 elementos, y se podria trabajar con un valor de longitud fija |
#8
|
||||
|
||||
Hola.
No sé con que RDBMS estás trabajando, pero siendo así, tal vez puedas definir un formato numérico para el almacenamiento y ahorrarte la conversión a cadena... Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
||||
|
||||
Ahora bien, si entiendo esto, es que el metodo de busca obligadamente debe tocar el ActiveX. Y eso obliga a hacer un proceso sequencial por N usuarios.
Seria ideal que supieras que algoritmo se usa para hacer la comparacion, y reimplementarlo en el motor. Si no se puede, entonces hay que hacer algo mas complejo. Ya que no se como es el asunto con huellas, hago una analogia con como se hace una busqueda de geolocalizacion... en donde si quieres buscar un punto en el globo terraqueo, puedes acortar el rango de busqueda deduciendo que el punto esta en la ciudad tal. Hay forma de decir: Esta huella esta entre este rango? Hay forma de pre-indexar las busquedas? (Osea, tener una tabla de busquedas ya hechas y almacenarlas) Otra seria tener un proceso de busqueda en paralelo, buscando con N-threads. Que tan variable son las lecturas entre una tomada de huella y otra? Hay modelos probabilisticos que se podrian evaluar... Y por ultimo, cuantos usuarios son? Que tan lento es esto? Que tasa de crecimiento tiene esto? No habra otro SDK mas rapido y mejor? P.D: Me encontre este articulo que habla sobre el tema http://timvdm.blogspot.com/2012/08/f...g-various.html
__________________
El malabarista. Última edición por mamcx fecha: 15-10-2014 a las 19:41:54. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Redondear numeros decimales a enteros.... | uper | Varios | 6 | 26-07-2012 16:52:45 |
validar que las cajas de texto solo acepten valores enteros y decimales | dimer18 | OOP | 11 | 12-12-2011 01:58:30 |
Formatear números enteros y decimales | quade | C++ Builder | 10 | 13-10-2011 16:09:54 |
Grabar En SQL Campos Decimales, Solo me graba enteros? Con Codigo | freddiaz07 | SQL | 13 | 21-09-2006 18:44:34 |
Grabar En SQL Campos Decimales, Solo me graba enteros? | freddiaz07 | SQL | 2 | 07-09-2006 16:24:04 |
|