PDA

Ver la Versión Completa : Grabar de tabla a taba


veronica
03-04-2008, 18:52:29
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
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


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
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
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


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.