Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Lightbulb pasar de una tabla1 a una tabla2 la misma info

Buenas tardes:

Tengo una tabla1 que tiene campos campo1, campo2
Tengo otra tabla que tienen campos campo1, campo2, campo3

donde para la tabla1 y la tabla2 los campos campo1 y campo2 son exactamente iguales. lo unico que cambia es que la tabla2 tiene un campo que se llama campo3.

como se hace para pasar toda la informacion de la tabla 1 a la tabla2
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #2  
Antiguo 26-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código SQL [-]
insert into tabla2(campo1, campo2)
select campo1, campo2 from tabla1
__________________

Responder Con Cita
  #3  
Antiguo 26-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
esto lo coloco en mi dataset1.insertsql??

Código Delphi [-]
 
insert into tabla2(campo1, campo2)
select campo1, campo2from tabla1

y mi pregunta es donde queda mi campo3 de la tabla2
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #4  
Antiguo 27-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
mmmmm, si los quieres pasar todos de una vez desde delphi
Código Delphi [-]
with TuDataset do begin
SQL.Clear;
SQL.Add('insert into tabla2(campo1, campo2)');
SQL.Add('select campo1, campo2 from tabla1');
ExecSQL;
end; //Fin with

en este caso Campo3 quedaría vacio....

si lo que queires es ir pasando campo1 y campo2 y tambien asignar un valor a campo3, lo que tendrías que hacer es un ciclo que recorra todo tu dataset y luego asignar T1.campo1=T2.campo1 y asignarle el valor a campo3.... de uno por uno... a menos que campo 3 se pueda calcular con campo1 y campo 2.....
__________________


Última edición por ContraVeneno fecha: 27-07-2005 a las 00:17:09. Razón: no había visto tu pregunta de donde queda el campo 3
Responder Con Cita
  #5  
Antiguo 27-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Pues en realidad campo3 es un trigger en interbase creado como before insert, entonces el campo no quedara vacio
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #6  
Antiguo 31-08-2005
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 19
dmagui Va por buen camino
Exclamation

Hola estoy intentando hacer la instruccion propuesta por Contraveneno, pero tengo un inconveniente:

Código Delphi [-]
 
procedure TForm1.Button3Click(Sender: TObject);
 begin
   with ibdataset1 do begin
     Close;
     selectsql.Clear;
     selectsql.Add('insert into cotizacion(codigo_comp, item_subcomp)');
     selectsql.Add('select codigo_comp, item_subcomp from prod_comp where codigo_prod ='
       + Quotedstr(DBlookupcombobox4.Field.Value)+'and item_subprod ='
       + Quotedstr(Dblookupcombobox5.field.Value));
     execsql;
     open;
   end;
 end;
y no me esta guardando nada en la base de datos, debo agregarle algo mas??, gracias por la ayuda
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.

Última edición por dec fecha: 09-09-2005 a las 20:38:28. Razón: Ajustar el ancho del texto
Responder Con Cita
  #7  
Antiguo 31-08-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Hay una ligera diferencia entre tu ejemplo y el mio.
Código Delphi [-]
selectsql.Add('insert ...
//Notas la diferencia?
SQL.Add('insert .....


Además de eso, la instrucción Open no debería estar despues de un ExecSQL, de hecho, Open se utiliza solo cuando son consultas (select) y ExecSQL se utiliza cuando se van a realizar cambios (Update, insert, delete, etc) Pero no debes usar las dos juntas. Y creo que falta un espacio antes del and
__________________


Última edición por ContraVeneno fecha: 31-08-2005 a las 19:42:20.
Responder Con Cita
  #8  
Antiguo 31-08-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Asi tambien

Código Delphi [-]
 

procedure TForm1.Button1Click(Sender: TObject);
begin
with ibdataset1 do begin
  open;
    while not EOF do begin
      IBdataset2.Append;
      Dbedit1.Text:=ibdataset1.fieldbyname('campo1').asstring;
      DBEdit2.Text:=ibdataset1.fieldbyname('campo2').asstring;
      DbEdit3.Text:=Ibdataset1.fieldbyname('campo3').asstring;
      next;
    end;
end;
ibdataset2.ApplyUpdates;
ibtransaction1.Commit;
end;

Asi tambien se puede hacer, pero es mas funcional como dice contraveneno
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
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 07:39: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