Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
copiar registros de una tabla a otra

Código Delphi [-]
      Close;
                SQL.Clear;
                SQL.Add('SELECT * FROM ventasareas');
                Open;
                articulo1 := FieldByName('articulo').value;
                cantidad1 := FieldByName('cantidad').value;
                precio1 := FieldByName('precio').value;
                fecha1 := FieldByName('fecha').value;


            Close;
            SQL.Clear;
            SQL.Add('INSERT INTO ventasdet (venta, orden, articulo, cantidad, precio,iva,devolucion, fecha)');
            SQL.Add('VALUES (:venta, rden, :articulo, :cantidad, recio, :iva,:devolucion,:fecha)');

            params.ParamByName('venta').Value :=  sVenta;
            params.ParamByName('orden').Value := IntToStr(i);
            params.ParamByName('articulo').Value := articulo1;
            params.ParamByName('cantidad').Value := cantidad1;
            params.ParamByName('precio').Value :=  precio1;
            params.ParamByName('iva').Value :=  rIva;
            params.ParamByName('devolucion').Value :=  riva;
            params.ParamByName('fecha').Value :=  fecha1;

Hola a todos este codigo me copia el primer registro de ventasareas a ventasdet

ahora mi pregunta es como puedo hacer para copiar todos los registros de ventasareas a ventasdet.. ya que ventasareas no solo tiene un registro si no mas..
alguien me puede ayudar ?

gracias
Responder Con Cita
  #2  
Antiguo 06-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Un bucle, por ejemplo, aprovechando un poco tu código:

Código Delphi [-]
SQL.Clear;                 
SQL.Add('SELECT * FROM ventasareas');                 
Open; 
while not sql.eof dobegin
 SQL.articulo1 := FieldByName('articulo').value;
 SQL.cantidad1 := FieldByName('cantidad').value;
 etc...

 SQL2.Clear;
 SQL2.Add('INSERT INTO ventasdet (venta, orden, articulo, cantidad, precio,iva,devolucion, fecha)');
 SQL2.Add('VALUES (:venta, rden, :articulo, :cantidad, recio, :iva,:devolucion,:fecha)');
 SQL2.params.ParamByName('venta').Value :=  sVenta;
 SQL2.params.ParamByName('orden').Value := IntToStr(i);
 etc...     


 SQL.next;
end;

Última edición por Casimiro Notevi fecha: 06-06-2011 a las 09:44:15.
Responder Con Cita
  #3  
Antiguo 06-06-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
no funciona el bucle da error de que el query esta cerrado y no puede realizar la operacion
tampoco hay parametro sql.next
Responder Con Cita
  #4  
Antiguo 06-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ya sé que no funciona, tal y como he dicho antes, sólo he modificado un poco tu código para que te hagas una idea de cómo debe hacerse y para hacerte pensar un poco, que es la única forma en que se aprenden las cosas
Responder Con Cita
  #5  
Antiguo 06-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver si te sirve esta "plantilla":

Código Delphi [-]
try
  Q1.Close;
  Q1.SQL.Text := 'select ...';
      
  Q2.Close;
  Q2.SQL.Text := 'insert into ...';
    
  Q1.Open;
  while not Q1.Eof do
  begin      
    Q2.Close;
    Q2.ParamByName('campo1').AsInteger := Q1.FieldByName('campo1').AsInteger;
    Q2.ParamByName('campo2').AsString  := Q1.FieldByName('campo2').AsString;
    etc.
    Q2.Execquery;      

    Q1.Next;
  end;

finally
  Q2.Transaction.CommitRetaining;
end;

Última edición por Casimiro Notevi fecha: 06-06-2011 a las 16:35:44.
Responder Con Cita
  #6  
Antiguo 06-06-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
queria saber si en el codigo que he puesto se le puede agregar unas lineas .. un bucle como me lo mencionaste al inicio.. ya que no quisiera cambiarlo por otro codigo distinto..

solo es cuestion de que quiero aprenderlo asi...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar registro de una Tabla a otra Tabla, sin repetirse MaMu Conexión con bases de datos 22 11-04-2013 15:29:11
enviar registros de una tabla a un campo de otra tabla a travez de ciclo IF en MYSQL CLUSTERBIT SQL 8 23-10-2008 15:50:03
copiar ciertos registros de una tabla a otra JESUSNET Conexión con bases de datos 2 07-06-2008 16:53:13
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 16:00:24
Copiar registros de una tabla a otra en Access con Delphi Gelmin Conexión con bases de datos 1 01-07-2005 12:35:04


La franja horaria es GMT +2. Ahora son las 17:36:57.


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