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 Temas de Hoy

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



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 00:21:59.


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