Ver Mensaje Individual
  #42  
Antiguo 05-08-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Reputación: 19
olbeup Va camino a la fama
Cita:
Empezado por ozsWizzard Ver Mensaje
Otro matiz, creo que la "select" del "insert" ha de ir con parénteis.
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject); 
begin 
  with Query1 do begin         
    Close;         
    SQL.Clear;    
    SQL.Add('INSERT INTO detfactfinal');    
    SQL.Add('(SELECT * FROM detfactura)');    
    ExecSQL;     
    Close;    
    SQL.Clear;    
    SQL.Add('DELETE detfactura');    
    ExecSQL;   
  end; 
end;

Además, si la base de datos es Sql Server, se debe poner la lista de campos de las tablas

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject); 
begin 
  with Query1 do begin         
    Close;         
    SQL.Clear;    
    SQL.Add('INSERT INTO detfactfinal (Numdetfact, Numfact, Cod_art, Cantidad)');    <-- Te falta un ")"
    SQL.Add('(SELECT Numdetfact, Numfact, Cod_art, Cantidad FROM detfactura)');  <-- Puedes omitir los paréntesis
    ExecSQL;     
    Close;    
    SQL.Clear;    
    SQL.Add('DELETE detfactura');    
    ExecSQL;   
  end; 
end;
Si la base de datos es SQL SERVER lo puedes hacer todo en una sola consulta, Insertar, Borrar, Actualizar e incluso hacer un Select al final de la consulta.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.

Última edición por olbeup fecha: 05-08-2013 a las 10:26:52.
Responder Con Cita