Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2008
Almd Almd is offline
Miembro
 
Registrado: ago 2008
Posts: 27
Poder: 0
Almd Va por buen camino
Comparar dos vectores

Buenas.
¿Como comparo dos vectores? Es decir, si un dato está repetido, evitar que haga un Insert y no repita dicho dato. Si necesitais algo mas específico decidme. Gracias!
Responder Con Cita
  #2  
Antiguo 08-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Cuando te refieres a vectores, supongo que quieres decir registro de una BD no?. Si es asi para que no se repitan datos se suele poner un campo clave.
Es decir si tienes estos campos:

IdEmpleado Nombre Apellidos Edad

IdEmpleado sería el campo clave y no podrían existir dos registros con el mismo campo clave IdEmpleado, asi te evitarías/controlarías la duplicidad.

Si lo que quieres, siguiendo el ejemplo, que no tenga el mismo Nombre Apellidos y Edad, lo que tendrías que hacer antes de insertar es realizar una consulta para ver si existe esa conjuncion de datos sino existe lo insertas y si existe das error.

[sql]
q1.parameters[0].asstring:='pepito';
q1.parameters[1].asstring:='palotes';
q1.parameters[2].asinteger:='30';
q1.sql.add(select * from empleados where (nombre=:wNombre) and (Apellidos=:wApellidos) and (Edad=:wEdad))
q1.open;
if q1.isempty then
//insertas registro nuevo
else
showmessage('ya existe registro');
Responder Con Cita
  #3  
Antiguo 08-09-2008
Almd Almd is offline
Miembro
 
Registrado: ago 2008
Posts: 27
Poder: 0
Almd Va por buen camino
Creo que no me expliqué bien, lo siento.
Cuando hablaba de vector me refiero a un TStrings que guarda todos los registros de una tabla. En mi caso tengo dos TStrings en los cuales en cada uno guarda los datos de tablas diferentes. Lo que quiere es, por ejemplo, si tengo estos datos en la tabla A:

pepito
manolito
pipiolito

Quiero que no me los incluya en la tabla B cada vez que le dé a mostrar los datos.

Por lo que he podido ver mas tarde, es que no me graba los registros que ya añadió la anterior vez que di a mostrar datos, por eso los inserta cada vez que le doy a mostrar datos.
Responder Con Cita
  #4  
Antiguo 08-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
uhmmm te sigo sin entender...
Cita:
Quiero que no me los incluya en la tabla B cada vez que le dé a mostrar los datos.
Cuando dices que que le dás a mostrar datos a que le das??? a un botón? a un menu, a que?? si tienes código es mejor que lo pongas. Cuando tu insertas en una tabla por defecto no te inserta en otra... por eso no te entiendo.
Responder Con Cita
  #5  
Antiguo 08-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola almd, yo tampoco te entiendo mezclas conceptos. Para ver si existe un dato en tu lista ya que no es un vector sino una lista de cadenas, puedes utilizar la función IndexOf que te devuelve el indice donde lo ha encontrado sino existe te devuelve -1

Código Delphi [-]
 if sl.IndexOf('pepito')=-1 then
  showmessage('no existe')

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 08-09-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En lugar de IndexOf, yo ordenaría los TStrings y utilizaría Find (si es posible) ya que es infinitamente más rápido (utilizarás búsqueda dicotómica en lugar de secuencial).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cómo comparar varios vectores (de filas en Excel)? Nanaky Varios 1 29-08-2007 17:24:15
Bases de datos y vectores grone35 Varios 2 07-09-2006 10:10:44
vectores... mauriciofox Gráficos 0 25-02-2005 05:28:17
Problema con vectores dinámicos aluduena Varios 2 27-09-2004 23:09:19
Vectores,Asscii jorgito PHP 1 26-07-2004 20:00:08


La franja horaria es GMT +2. Ahora son las 00:04:33.


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