![]() |
Copiar registro de una Tabla a otra Tabla, sin repetirse
Despues de 42 horas sin dormir, me encuentro con que no puedo conseguir algo muy sencillo, tengo dos tablas, y quiero añadirle registros de una a la otra, unicamente cuando estos sean distintos, y lo que hago es lo siguiente:
QAux--->Tabla A QEstadisticas---->Tabla B Quiero copiar de A en B, solo aquellos registros que no sean identicos a los de B, segun una condicion X.
Pero me copia aun los que estan repetidos, es decir, son identicos en ambas tablas, A y B. Que estoy haciendo mal? (ademas de no dormir, pero tengo que terminar si o si para poder tomarme unos dias de descanso) Saludos |
Que base de datos usas?
Lo mejor es usar sentencias SQL! Sino utiliza Locate para buscar el campo llave. El codigo b:=b no tiene sentido, quita eso! |
Cita:
|
Copiar Registro de una tabla a otra sin repetirse
Prueba algo así como esto
|
Haber si esto te puede servir
Aunque lo hice al aire porque no tengo mi Delphi, puede haber algun error. Salud OS. Edito: Se me adelanto sara2005, y me parece una muy buena idea la del LOCATE. |
Cita:
Cita:
Danos detalles de las tablas, los campos relacionados, y el campo Id (el cual no queires que se repita). |
Cita:
Creo que estás haciendo más recorridos de la cuenta; Recorre una única tabla y dentro de ese busca en la segunda (sea con SQL como te han dicho o con un Locate). |
SOLUCIONADO
Gracias a todos, tome un poco de cada una de las sugerencias de ustedes y logre solucionarlo. Muchas Gracias |
Cita:
Muchos de nosotros te agradeceriamos que postearas la solución para consultas futuras, de esa manera, quien tenga un problema similar trendrá de primera mano la solución a sus dudas. Salud OS. |
Solucion
deberas declarar la tabla de la que copiaras los datos con el nombre: tblsource, y la tabla a la que copiaras los datos con el nombre de: tbldest.
y copia este codigo en algun boton
esta sentencia copiara el registro activo de la tabla tblsource a la tabla tbldest |
Buenas tardes, me meto en este hilo porque tengo la misma consulta...
Pasar registros de una tabla a otra, pero sin que se repitan. yo lo hago mediante dos dbgrid y en un boton puse el codigo que paso seara2005, lo modifiqué segun mi programa, pero el problema esta en que me carga el registro tantas veces como registros hay cargado en la tabla.. (ejemplo: si tengo 3 registros en total cargado en la tabla principal, me carga el registro 3 veces en la otra tabla). Como puedo solucionar eso? o que estoy haciendo mal.. Les paso mi codigo para que me puedan ayudar..
Aclaro: a la hora de la inserción uso el DataSet porque el Query no me permite el ingreso de registros ya que es de solo lectura. Muchas gracias |
Hola Vales08.
También podes pasar registros de una tabla a otra, sin que aquellos se repitan, de este modo:
Saludos. |
ecfisa muchas gracias por la respuesta..
Eh probado el código pero me salta un error y no se que puede ser.. Error: Cita:
Me gustaria que me orientaras a saber donde puede estar el problema.. |
Hola Vales08.
A primera vista, en la línea: indicas que vas a insertar valores en tres columnas de la tabla PLAN_Y_ALIM. Pero en las líneas: Solo seleccionas una columna de la tabla ALIMENTOS, es que decir que faltaría especificar dos columnas de dicha tabla para ser insertados en las columnas ID_ALIM e ID_PLAN de la tabla PLAN_Y_ALIM Saludos. |
Ahh claro..
Lo que sucede es que en la tabla PLAN_Y_ALIM solo tengo el ID_PLAN_Y_ALIM y luego las forenkey ID_ALIM (Pertenece a la tabla ALIMENTOS) y ID_PLAN (pertenece a la tabla PLANES_ALIM). Entonces lo que yo necesito es que al seleccionar un registro de la tabla ALIMENTOS, ese registro se guarde en la tabla PLAN_Y_ALIM, donde se genera un ID_PLAN_Y ALIM y se le asigna el ID_ALIM seleccionado y el ID_PLAN de la tabla PLANES_ALIM (ese id sale de un alta que hago antes). No se si se entiende. el codigo tendria que quedar asi entonces:
Seria mas o menos asi?? |
Hola Vales08.
Si, si el campo ID de la tabla PLAN_Y_ALIM se genéra automáticamente sólo sería necesario completar esos campos. Pero cuando te referis a: Cita:
Saludos. |
Ahh entonces estoy equivocada con el codigo.. Yo necesito pasar archivos de una tabla a otra sin repetir, pero no todos, si no los que yo voy seleccionando desde una grilla..
Mil disculpas por haber ocupado tu tiempo en algo que no era. Y muchas gracias por tu dedicación. |
Cita:
Para el recorrido puedes utilizar la propiedad SelectedRows y para cada registro hacer la copia.
|
Bien y en la parte donde tengo que realizar la copia del registro lo hago con el codigo SQL como el que me habias pasado antes? o hay alguna forma para hacerlo con codigo delphi?
|
Cita:
Para hacerlo utilizando comandos en Delphi, revisa código como este:
|
La franja horaria es GMT +2. Ahora son las 23:30:30. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi