Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2006
jorgesl jorgesl is offline
Miembro
 
Registrado: feb 2006
Ubicación: Torreón, Coahuila. México
Posts: 29
Poder: 0
jorgesl Va por buen camino
insert into tabla values (select *... ¿?

Hola, que tal.
Tengo un TQuery con la siguiente instruccion SQL:

Código SQL [-]
select * from SOSTAT_RESUL where SOSTAT_RESUL.PNTNAM like :nomenclatura and SOSTAT_RESUL.SUBNAM like :sSubE order by SOSTAT_RESUL.PNTNAM

Esa instruccion me regresa una serie de registros que estan almacenados en una tabla y esos registros, necesito insertarlos en otra tabla.

El problema es que esos registros tienen muchísimos campos (como 70) y seria muy dificil hacer insert into tabla values (x1,x2,x3, ....,x70);.. se imaginan ?

Mi pregunta es saber si puedo hacer algo como:
Código SQL [-]
insert into tabla values (select * from SOSTAT_RESUL where SOSTAT_RESUL.PNTNAM like :nomenclatura and SOSTAT_RESUL.SUBNAM like :sSubE order by SOSTAT_RESUL.PNTNAM);

y como es uqe hay que hacerlo.

O que otra opción me dan.

Uso delphi 2006 y la base de datos esta en Access
Gracias !

Última edición por dec fecha: 05-04-2006 a las 17:40:50.
Responder Con Cita
  #2  
Antiguo 05-04-2006
Kosmo Kosmo is offline
Miembro
 
Registrado: abr 2006
Posts: 21
Poder: 0
Kosmo Va por buen camino
Creo que se puede hacer mas o menos como tu has dicho:

Código SQL [-]
 
INSERT INTO MiTabla SELECT Campo1,Campo2,Campo3 FROM OtraTabla WHERE MiCampo='X'

Creo que algo asi funcionaría, sin poner "Values".

Además de esa versión, en caso de que la tabla no este creada, también tienes otra manera de hacerlo (que al menos funciona con bases de datos oracle, no se si con el resto también).

Código SQL [-]
 
SELECT * FROM MiTabla AS NuevaTabla

Eso lo que haría sería crearte una tabla con las columnas necesarias utilizando el mismo tipo de datos que las columnas de la tabla origen seleccionadas.

Espero te sirva
Responder Con Cita
  #3  
Antiguo 05-04-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola pasata por aquí.

Saludos
Responder Con Cita
  #4  
Antiguo 05-04-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por jorgesl
Mi pregunta es saber si puedo hacer algo como:
Código SQL [-]
insert into tabla values (select * from SOSTAT_RESUL where SOSTAT_RESUL.PNTNAM like :nomenclatura and SOSTAT_RESUL.SUBNAM like :sSubE order by SOSTAT_RESUL.PNTNAM);
Si se puede, siempre que la consulta "Select" arroje la misma cantidad de campos que la tabla en "Insert". Si por alguna razon tienes insertar solo 60 campos (ej.) lamentablemente tendras que especificar cada campo.

Cita:
Empezado por jorgesl
y como es uqe hay que hacerlo.
Como lo veo arriba esta bien y como te escribi mas arriba: Campo en Inset = Campo en Select
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 05-04-2006
FOURIER FOURIER is offline
Miembro
 
Registrado: dic 2005
Posts: 40
Poder: 0
FOURIER Va por buen camino
Esa serìa la manera

insert into tabla(CamposAgregar) select CamposAgregar from SOSTAT_RESUL where SOSTAT_RESUL.PNTNAM like :nomenclatura and SOSTAT_RESUL.SUBNAM like :sSubE order by SOSTAT_RESUL.PNTNAM;
Responder Con Cita
  #6  
Antiguo 05-04-2006
jorgesl jorgesl is offline
Miembro
 
Registrado: feb 2006
Ubicación: Torreón, Coahuila. México
Posts: 29
Poder: 0
jorgesl Va por buen camino
Hago lo sigueinte:

Código Delphi [-]
       {}Qinte := TQuery.Create(Self);
        {}Qinte.DatabaseName := 'Objetos';
        {}Qinte.RequestLive := True;
        {}Qinte.Close;
        {}Qinte.SQL.Text := 'insert into SOSTAT_RESUL_ORDEN (select * from SOSTAT_RESUL where SOSTAT_RESUL.PNTNAM like :interruptor)';
        {}Qinte.Prepare;
        {}Qinte.ParamByName('interruptor').AsString := interruptor;
        {}Qinte.Open;
pero en Qinte.Prepare;

Marca el siguiente error:
Código:
'Invalid use of keyword.
Token: select
Line Number: 1.'
Si quito los parentesis entre lso que esta el select, el error que me marca dice: 'Capability not supported'

Última edición por jorgesl fecha: 05-04-2006 a las 22:11:44.
Responder Con Cita
  #7  
Antiguo 06-04-2006
jorgesl jorgesl is offline
Miembro
 
Registrado: feb 2006
Ubicación: Torreón, Coahuila. México
Posts: 29
Poder: 0
jorgesl Va por buen camino
Vi un error que tengo:

Debo de hacer ExcecSQL en lugar de Open.
Pero igual sigue sin funcionar.

El error me lo da en el prepare.

Quice hacer la prueba simplemente haciendo
Código SQL [-]
insert into SOSTAT_RESUL (PNTNAM) values ("PRUEBA")

pero al llegar al momento donde se ejecuta el query, me dice que la tabla es de solo lectura...
Pero la tabla no es de solo lectura...

Ya me desespero ese error... es lo único que me falta para terminar mi proyecto
Responder Con Cita
  #8  
Antiguo 06-04-2006
JOSEA JOSEA is offline
Miembro
 
Registrado: may 2004
Posts: 12
Poder: 0
JOSEA Va por buen camino
Hola a todos.
Supongo que las dos tablas tendran campos similares, si es asi puede que te sirva esto (es un poco basto):
Código:
  query1.open;
  tablasegunda.BatchMove(query1,batappend);
  query1.close;
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
Incorrect values within SQLDA structure fedelinardi SQL 5 01-02-2018 03:52:07
insertar al final de la tabla, sin que me los ponga hantes de los que ya estan insert sakuragi SQL 2 12-08-2005 22:32:12
insert a una tabla de otra tabla mas datos gmontes SQL 3 16-10-2004 17:04:51
select que me mueste los campos de una tabla cahosoft Oracle 1 01-10-2004 00:02:54
En el from del select puede ir una tabla query? cmena SQL 5 15-07-2004 17:05:04


La franja horaria es GMT +2. Ahora son las 17:07:54.


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