Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-12-2004
Avatar de fjolivares
fjolivares fjolivares is offline
Miembro
 
Registrado: dic 2003
Ubicación: Madrid
Posts: 59
Poder: 21
fjolivares Va por buen camino
Copiar registro activo en uno nuevo

Hola a todos, en IboConsole hay una opcion para copiar el registro activo en uno nuevo, existe una funcion o una sentencia para hacer eso directemante en vez de guardar los valores en variables y copiarlos?

un saludo y gracias.
Responder Con Cita
  #2  
Antiguo 30-12-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Que yo sepa no existe; De todas formas, piensa que no es trivial programar algo genérico para esto, ya que la copia del registro depende no sólo de los campos del registro, sino de las restricciones e índices que puedas tener definidos. Por ejemplo, es inútil duplicar el campo/s que esté/n definido/s como "clave primaria" ya que al intentar insertarlos "saltaría" un error de duplicidad. Algo similar ocurriría con campos que estén definidos en un índice UNIQUE.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 30-12-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Puedes crearte una función que guarde los valores en una matriz y luego los inserte de nuevo en la misma tabla.

Por si te sirve la idea.
Código Delphi [-]
 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;

Tomado de Trucomania.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:59:21.


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