Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2005
seken seken is offline
Miembro
 
Registrado: jun 2003
Posts: 83
Poder: 21
seken Va por buen camino
Unhappy 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
Responder Con Cita
  #2  
Antiguo 15-04-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 15-04-2005
seken seken is offline
Miembro
 
Registrado: jun 2003
Posts: 83
Poder: 21
seken Va por buen camino
estamos mas cerca

marcos
que me deuelve el findkey ??? un valor logico?? y de esa forma lo puedo usar con un if???



seken
Responder Con Cita
  #4  
Antiguo 15-04-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Exacto:
Código Delphi [-]
 If MiTabla.FindKey([Edit1.Text]) then
 ShowMessage('El Registro ya existe')
 else
 ShowMessage('Nuevo registro');
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 15-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Otra opción podría ser haciendo el Post sin verificar nada y esperar el evento OnPostError.

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 23:57:11.


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