Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   campo unico duplicado (https://www.clubdelphi.com/foros/showthread.php?t=20461)

seken 15-04-2005 19:08:46

campo unico duplicado
 
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

estamos mas cerca
 
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:
Código Delphi [-]
 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


La franja horaria es GMT +2. Ahora son las 03:31:22.

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