PDA

Ver la Versión Completa : como replicar registro


morfeo21
13-07-2005, 00:35:19
hola amigos del foro, quisiera que me ayuden con un problema q' se presento en un prg. que estoy utilizando, pues veran:
trabajo con bd interbase 6.0.; estoy cargando informacion de una tabla llamada ordenes atraves de un storeprocedure el cual muestra la sgte informacion atravez de un dbgrid :
numord item codart descripcion
001 1 A089 PARLANTES AFH001
001 2 A039 TECLADO AFL0234
001 3 B234 CAMARA DIGITAL UI8JK
...
..
.
Lo que pretendo es, que al seleccionar en la Dbgrid un registro y hacerle click en un boton que esta dentro de la misma ficha o formulario me replique la informacion pero , que se visualialice debajo del registro seleccionado. algo asi:

001 1 A089 PARLANTES AFH001
001 1 A089 PARLANTES AFH001
001 2 A039 TECLADO AFL0234
001 3 B234 CAMARA DIGITAL UI8JK
...
en este caso seleccione el primer registro y duplique la misma.
diganme hay alguna forma de lograr esto. Gracias de antemano por la respuesta :(

Neftali [Germán.Estévez]
13-07-2005, 10:21:02
Para duplicar la información basta con que leas el registro actual e insertes uno igual con los mismos datos:
(1) Utilizando los métodos de TDataSet:

T.Append;
T.FieldByName('campo1').AsString := Valor1;
T.FieldByName('campo2').AsString := Valor2;
...
T.Post;


(2) Utilizando SQL:

INSERT INTO Tabla (campo1, campo2,...) VALUES (valor1, Valor2,...)


El tema de que salga debajo, se puede conseguir ordenando la tabla de una forma determinada. Por ejemplo, si ordenas ta tabla por nombre, como el nuevo elemento tendrá el mismo nombre que el anterior te saldrá a continuación...

P.D: Debe haber alguna diferencia entre ambos registros, aunque sólo sea un campo (clave primaria); Por temas de eficiencia y seguridad, deberías tener como mínimo algo que los diferenciara.

morfeo21
13-07-2005, 16:45:57
Gracias por la respuesta Neftali, procedere a poner en cuenta tu consejo y despues te cuento.