Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   copiar de un registro a otro en la misma tabla (https://www.clubdelphi.com/foros/showthread.php?t=50327)

Jorge Alonzo 14-11-2007 21:09:00

copiar de un registro a otro en la misma tabla
 
HOLA
¿Alguien podria ayudarme?
Estoy haciendo un programa para automatizar las e/s de un centro de computo, pero me surgio el siguiente problema y no tengo quien me ayude ya investigue por dias en internet y aun no encuentro la solucion espero y me puedan ayudar les envio las gracias anticipadas.

Tengo una dase de datos con cuatro tablas y una de ellas es equipos (10 elementos) en esta almaceno el estado de cada uno de ellos: disponible, ocupada o en reparacion. Todas la maquinas inician en el estado de disponible, cuando voy a darle de alta o ponerla en ocupada a una de ellas, creo un nuevo registro o fila asi:
table1.append;
y por ejemplo si le di click a la maquina siete hago lo siguiente:
table1.fields[6].value:='Ocupada';// indice 6 porque comienza de 0
y como habia mencionado anteriormente todas la demas estan en estado 'disponible' excepto la siete y lo que quiero hacer es copiar todos los estados de las maquinas al nuevo registro o fila ya que cuando puse append cree el registro dos o fila dos y quiero pasar o copiar los estados al nuevo registro.
¿Cómo hago esto?.

Caral 14-11-2007 21:13:05

Hola
Muy complicada tu pregunta, pero me parece que lo que quieres hacer es un UpDate no un Append, por lo menos me pareceria lo logico.
Para hacer lo que indico se haria con un Query (con Sql) no con un table.
Saludos

jhonny 14-11-2007 21:13:38

No se si soy el unico, pero sinceramente no entendí muy bien lo que necesitas :(, ¿Podrias explicarlo mejor?

Jorge Alonzo 15-11-2007 17:29:15

copiar fila en otra fila de una misma tabla
 
HOLA
¿Alguien podria ayudarme?
Estoy haciendo un programa para automatizar las e/s de un centro de computo, pero me surgio el siguiente problema y no tengo quien me ayude ya investigue por dias en internet y aun no encuentro la solucion espero y me puedan ayudar les envio las gracias anticipadas.

Tengo una dase de datos con cuatro tablas y una de las tablas es equipos (contiene 10 elementos) en esta almaceno el estado de cada uno de ellos: disponible, ocupada o en reparacion. Todas la maquinas inician en el estado de disponible (por lo tanto hago una comparacion y si la cadena es 'disponible' activo todos los 10 iconos de las computadoras en caso contrario las cadenas podrian ser 'ocupada' o 'reparacion' y por lo tanto permanecerian desactivados los iconos de los equipos), cuando voy a darle de alta o ponerla en ocupada a una de ellas, creo un nuevo registro o fila asi:
table1.append;
y por ejemplo si le di click a la maquina siete hago lo siguiente:
table1.fields[6].value:='Ocupada';// indice 6 porque comienza de 0
y como habia mencionado anteriormente todas la demas estan en estado 'disponible' excepto la siete y lo que quiero hacer es copiar todos los estados de las maquinas al nuevo registro o fila ya que cuando puse append cree el registro dos o fila dos y quiero pasar o copiar los estados al nuevo registro.
Para que haga las comparaciones correspondientes y active los equipos que tengan la cadena 'disponible' y desactive los equipos que tengan la cadena 'ocupada'

Jorge Alonzo 15-11-2007 17:36:23

copiar fila en otra fila de una misma tabla codigo
 
Se me olvidaba comentarles que consegui el siguiente codigo (aqui en el club) pero no se si haga lo que estoy buscando, pero de todos modos les agradecia que me ayuden.

procedure TForm1.Button2Click(Sender: TObject);

type
{Tipos para array dinámico de variants}
TRecuerda = array[0..0] of variant;
PRecuerda = ^TRecuerda;
var
Recuerda:PRecuerda;
n:integer;
Campos:integer;
begin
{Reservamos memoria para el array}
Campos:=Table1.FieldCount;
GetMem(Recuerda, Campos * SizeOf(variant));

{Vamos al ultimo registro}
Table1.Last;
{Recordamos los campos}
for n:=0 to Table1.FieldCount-1 do
begin
Recuerda^[n]:=Table1.Fields[n].AsVariant;
end;

{Añadimos un registro}
Table1.Append;
{Lo rellenamos}
for n:=0 to Table1.FieldCount-1 do
begin
Table1.Fields[n].AsVariant:=Recuerda^[n];
end;
{Lo grabamos}
Table1.Post;

{Liberamos memoria}
FreeMem(Recuerda, Campos * SizeOf(Variant));
end;


La franja horaria es GMT +2. Ahora son las 21:45:33.

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