Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Grabar de tabla a taba (https://www.clubdelphi.com/foros/showthread.php?t=54950)

veronica 03-04-2008 18:52:29

Grabar de tabla a taba
 
Hola de nuevo, tengo el siguiente problema. Necesito grabar registros de una tabla a otra que tienes los mismos campos y en este caso son muchisimos, pero ha de ser registro a registro, pues en algunos casos he de insertar registros distintos, se que existe el bathmove, pero creo que mueve la tabla completa.

Gracias.

eduarcol 03-04-2008 19:13:47

Hola, y cual es el problema del batch move, no quieres trasladar la tabla completa??. si no es asi entonces filtra la tabla origen y solo pasaras esos registros

BlueSteel 03-04-2008 19:14:08

Cita:

Empezado por veronica (Mensaje 277349)
Hola de nuevo, tengo el siguiente problema. Necesito grabar registros de una tabla a otra que tienes los mismos campos y en este caso son muchisimos, pero ha de ser registro a registro, pues en algunos casos he de insertar registros distintos, se que existe el bathmove, pero creo que mueve la tabla completa.

Gracias.

Hola veronica...

Bueno.. con que componente estas trabajando para accesar a las tablas...

son tablas planas.. o trabajas con algun motor de base de datos..

Mira.. el sgte ejemplo lo que hace es traspasar los datos de una tabla de Dbase a Interbase...

Datos es un formulario de tipo DataModule
Smae es un TTable..
IBQ_Edit es un IBQuery

Código Delphi [-]
     With Datos.Smae Do
     Begin
         First;
          While Not Eof Do
          Begin
               p_nro := FieldByName('Nro').AsString;
               p_rut := Concat(FormatFloat('##,###,##0',StrToFloat(FieldByName('rut').AsString )),'-',FieldByName('dvr').asString);
               p_nom := FieldByName('nom').asstring;
               Datos.IBQ_Edit.SQL.Clear;
               Datos.IBQ_Edit.SQL.Add('Insert Into "Personal" ("Per_Nro","Per_Nombre","Per_Rut")');
               Datos.IBQ_Edit.SQL.Add('Values (:P1, :P2, :P3)');
               Datos.IBQ_Edit.Params[0].AsString := p_nro;
               Datos.IBQ_Edit.Params[1].AsString := p_nom;
               Datos.IBQ_Edit.Params[2].AsString := p_rut;
               Datos.IBQ_Edit.ExecSQL;
               Datos.IBT_Edit.Commit;
               p_nro := '';
               p_rut := '';
               p_nom := '';
               Next;
          End;
     End;

espero que esto te sirva

Salu2:p:D

veronica 03-04-2008 19:19:10

no me he explicado bien
 
Hola eduardo, no me he explicado bien, necesito crear 7 registros por cada grupo y algunas veces me puede venir 1, 2,3 hasta 7.
Ejemplo. tabla con nombre dni y resto datos.

Registro 1 : EDUARDO, 222222i, datos1.
2 : EDUARDO, 222222i, datos 2.
3 : VERONICA, 33333, datos1.
4 : PEPE, 4444, datos1.

La nueva tabla ha de llevar el registro 1 y el 2 identicos, pero necesito crear los registros 3, 4, 5, 6 y 7 solo con el campo dni para completar el grupo de 7.

En el caso de veronica he de mover su registro mas añadir otros 6, se me entiende?.

Caral 03-04-2008 19:20:05

Hola
Veronica con que tabla estas trabajando, Paradox o access?.
En varios de tus post as especificado estas, por cual te decidiste?
Saludos

veronica 03-04-2008 19:21:05

Trabajo con tabla access y componente ADO.

eduarcol 03-04-2008 19:29:15

pues creo que te va a tocar hacer el recorrido y evaluar la condicion en cada tabla, si cumple la agregas, pero la verdad no entendi cual criterio utilizaras

veronica 04-04-2008 09:15:33

Lo de recorrerla la tengo clara, pero lo que no quisiera es tener que mover campo a campo, hay alguna instruccion para mover el registro completo.

TablaDestino.RegistroCompleto = TablaOriginal.RegistroCompleto, algo asi existe?.

Gracias.

jcarteagaf 04-04-2008 12:14:32

Mover registro
 
No existe una instruccion como la que buscas ,pero puedes hacer lo siguiente:

var
i: smallint

begin
.......
for i:= 0 to TablaOrigen.fields.count - 1 do
TablaDestino.fields[i].value := TablaOrigen.fields[i].value;
....


Saludos.

Lepe 04-04-2008 12:45:04

http://sql.1keydata.com/es/sql-insert-into.php

Código SQL [-]
insert into tabla A (campo1, campo2)
values (select  campo1, campo2 from tabla2)

Saludos

veronica 04-04-2008 13:28:06

Gracias a todos por vuestra colaboracion, la formula de jcarteagaf me viene de perlas, me ahorro cantidad de codigo con los consiguientes errores.


La franja horaria es GMT +2. Ahora son las 03:31:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi