PDA

Ver la Versión Completa : campo unico duplicado


seken
15-04-2005, 19:08:46
estimados.....
estoy utillizando bases de datos Paradox, tengo 2 bases de datos (Dbf de Clipper a Db de Paradoz). Tengo un campo que es nro_vale el cual es primary key.

necesito pasar registros de una tabla a la otra y controlar que no existe en la otra tabla. Lo que estoy hacecindo es utilizar una función que le paso como pareametro el nro_vale y en otra TTable que referencia a la tabla hago un filtro con filter (nro_vale=XX), si cantidad de registro es >0 entronces devuelvo true sino false. Si da false hago append y asigno valores, sino paso al proximo registro.

Esto funciona bien, pero el tema esta en que ahora tengo 6000 registrros y el proceso es muy lento, creo que la función que usa el filtro se pone cada vez mas lenta mientras mas registri tenga, aunque tenga asignado el índice sobre el campo a buscar.

¿¿¿¿¿¿Hay alguna forma mas facil de controla que no se me duplique???
muchas gracias

seken ;)

marcoszorrilla
15-04-2005, 19:12:39
Si la tabla que recibe los datos es la de tipo Paradox, bastará con que declares ese campo Clave primaria y luego utiliza FindKey([txto]) para saber si existe o no dicho Registro.

Un Saludo.

seken
15-04-2005, 20:38:22
marcos
que me deuelve el findkey ??? un valor logico?? y de esa forma lo puedo usar con un if???

:confused:

seken

marcoszorrilla
15-04-2005, 21:11:29
Exacto:

If MiTabla.FindKey([Edit1.Text]) then
ShowMessage('El Registro ya existe')
else
ShowMessage('Nuevo registro');

Un Saludo.

roman
15-04-2005, 21:28:45
Otra opción podría ser haciendo el Post sin verificar nada y esperar el evento OnPostError.

// Saludos