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 07-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Vale amigo, mañana lo harás sin problemas, la almohada es la mejor consejera.
Buenas Noches.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #2  
Antiguo 07-02-2012
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.289
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
Si la tabla no tiene muchos datos, tal vez te saldría a cuenta, dentro del Stored Procedure, añadir el campo0 a la primera tabla, luego hacer el INSERT INTO y finalmente volver a borrar el campo de la primera tabla.

La ventaja que le veo es que cuando añadas más campos, el SP no deberá cambiar.
La desventaja es que si la tabla es muy grande (con muchos datos), habrá que ver el tiempo que tarda en crear y borrar el campo.
__________________
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 07-02-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Me da la sensación de que Caral es el que más cerca anda de la solución.

yo haría lo mismo que él, leería los campos de la tabla 1, y montaría la query en una variable de tipo string.

Luego ejecutaría "EXCECUTE STATEMENT CONSULTA" siendo consulta la query que he montado.

No lo he probado. Si funciona, no deberás cambiar nunca el store procedure.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #4  
Antiguo 07-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, gracias por las respuestas.
Neftalí, la tabla tiene bastantes registros porque se tratan precisamente de históricos, la tabla-B es un histórico acumulado de todo lo que hay en tabla-A, así que como todos los históricos, cada vez será más y más grande.
Aunque el método que has indicado es una muy buena idea, muy simple y efectiva.
El método indicado por Caral de obtener los campos desde las tablas del sistema, luego crear la sentencia sql dinámicamente, como también ha indicado fjcg02, es muy factible, y también funciona, seguro.
Lo que voy a hacer es probar ambas formas, me quedaré con la que sea más rápida de ejecución. Y si son muy similares... lo echaré a cara o cruz

Gracias de nuevo, ambas soluciones son estupendas y es justo lo que estaba buscando.
Responder Con Cita
  #5  
Antiguo 07-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, pero, ¿qué valor debe ir en ese campo extra? Supongamos que es un campo entero y cero su valor por defecto. No me van a decir que en Firebird no puede hacerse esto:

Código SQL [-]
insert into tabla_b
select 0,* from tabla_a

// Saludos

Última edición por roman fecha: 07-02-2012 a las 18:46:55.
Responder Con Cita
  #6  
Antiguo 07-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Muy interesante.
Pregunto:
Que campo de la tabla tomara para ese dato ?, el 1, 2, 3 etc..??.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 07-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código Delphi [-]
insert into tabla_b
select *, 0 from tabla_a

Pues aparentemente no funciona de ese modo, es lo primero que probé
Responder Con Cita
  #8  
Antiguo 07-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Código Delphi [-]
insert into tabla_b
select *, 0 from tabla_a

Pues aparentemente no funciona de ese modo, es lo primero que probé
Ya, pues..., ni qué decir que en MySQL funciona a la perfección

// Saludos
Responder Con Cita
  #9  
Antiguo 07-02-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Código:
insert into tabla_b select *, 0 from tabla_a
Pues aparentemente no funciona de ese modo, es lo primero que probé
Debería funcionar correctamente, yo lo utilizo en ocasiones. Pruébalo de esta forma (con el alias de la tabla donde hay que coger todos los campos) :

Código:
insert into tabla_b select 0, tabla_a.* from tabla_a
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
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
Opciones para copiar registros de una tabla a otra pmtzg Firebird e Interbase 19 10-08-2011 18:30:40
copiar registros de una tabla a otra Rofocale Varios 11 07-06-2011 13:23:55
copiar ciertos registros de una tabla a otra JESUSNET Conexión con bases de datos 2 07-06-2008 16:53:13
Como copiar los datos de una tabla a otra Shidalis Varios 2 21-07-2005 14:34:32
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 13:18: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