FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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! |
#2
|
||||
|
||||
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'); |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
uhmmm te sigo sin entender...
Cita:
|
#5
|
||||
|
||||
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
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. |
#6
|
||||
|
||||
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. |
|
|
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 |
|