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 01-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Duplicar Registros

Antes de que se vaya a ir quien me pueda ayudar, mejor me apuro a hacer mi pregunta


Lo que pasa es que tengo una función para duplicar registros en el sistema que estoy desarrollando, Lo hago con código de Delphi. El problema es que también quiero duplicar los detalles de este registro por medio de SQL y con un Select anidado. No sé como hacerlo. He intentado el siguiente código.

Código SQL [-]
Insert into DetallesTable (PADRE, TIPO, CODIGO, DESCRIPCION)
VALUES
:CODIGO_NUEVOPADRE,
    (Select Tipo, Codigo, Descripcion from DetallesTable
       Where PADRE=:CODIGO_PADREORIGINAL)

Algo por el estilo he intentado hacer, pero me da el error de que el numero de Parámetros y valores no coinciden.

Literalmente, el código que manda el servidor es: "count of column list and variable list do not match"

Apreciaré cualquier ayuda al respecto que puedan proporcionarme.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web

Última edición por Chris fecha: 01-02-2008 a las 20:40:49.
Responder Con Cita
  #2  
Antiguo 01-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
bueno lo que te propongo es mas que una idea que solucion:

Código SQL [-]
 INSERT INTO TABLA1 (CAMPO1, CAMPO2) SELECT CAMPO1, CAMPO2 FROM TABLA WHERE CAMPO=VALOR

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 01-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
No parece ser necesaria una subconsulta:

Código SQL [-]
Insert into DetallesTable (PADRE, TIPO, CODIGO, DESCRIPCION)
Select :CODIGO_NUEVOPADRE, Tipo, Codigo, Descripcion from DetallesTable
Where PADRE=:CODIGO_PADREORIGINAL

Bye
Responder Con Cita
  #4  
Antiguo 01-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Gracias enucumene por el interes, pero no me funciona. Al contrario me dice que el Select es invalido.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #5  
Antiguo 01-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por D&W Ver Mensaje
Gracias enucumene por el interes, pero no me funciona. Al contrario me dice que el Select es invalido.
Vale, ya la propuesta de KeyBoy? es casi identico al mio, por cierto, no has dicho que base de datos usas .

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 01-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
no has dicho que base de datos usas .
Pues no sé por qué, pero juraría que es Interbase o Firebird

Bye
Responder Con Cita
  #7  
Antiguo 01-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Vale, ya la propuesta de KeyBoy? es casi identico al mio, por cierto, no has dicho que base de datos usas .

Saludos.
La de KeyBoy es la misma practicamente, lo que no sé, es que si nuestro amigo se habrá equivocado tenido algún error al tepear el código, ya que hasta donde veo, no es una consulta SQL valida.

Con respecto a la base de datos que utilizo enecumente, Mira: Sube tus ojo a la parte superior izquiera de tu pantalla, abajo de un Rotulo que dice "Club Delphi" encontrás la respuesta.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #8  
Antiguo 01-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Vale que tonto soy, , es que estoy demasiado animado con las chicas que hay en la fiesta de Egostar...
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #9  
Antiguo 01-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Por cierto, la propuesta de KeyBoy es invalida porque hay un parametro en el select y no se puede sino despues del Where, creo yo.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #10  
Antiguo 01-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Por cierto, la propuesta de KeyBoy es invalida porque hay un parametro en el select y no se puede sino despues del Where, creo yo.

Saludos.
Pues se nos ha caido el sapote -a como decimos aca- enecumene, por que el código es a como lo ha puesto KeyBoy. Lo que sucede es que cuando vas a duplicar los registros o insertar regitros desde otra tabla no se necesita de la palabrita "values", simplemente queda a como lo ha dicho KeyBoy.

A inicio me dio error porque siempre utilizaba "Values"

Gracias KeyBoy.

Enecumene: También estaba viendo a las chicas .
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #11  
Antiguo 01-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
A ver, prueba esto amigo D&W

Código SQL [-]
Insert into DetallesTable (PADRE, TIPO, CODIGO, DESCRIPCION)
VALUES :CODIGO_NUEVOPADRE, 
  (Select Tipo from DetallesTable Where PADRE = :CODIGO_PADREORIGINAL), 
  (Select Codigo from DetallesTable Where PADRE = :CODIGO_PADREORIGINAL),
  (Select Descripcion from DetallesTable Where PADRE = :CODIGO_PADREORIGINAL)

Salud OS

Edito: Vaya, pues ya tienes la solución, bien por esa keyboy
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 01-02-2008 a las 21:23:03.
Responder Con Cita
  #12  
Antiguo 01-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por D&W Ver Mensaje
Pues se nos ha caido el sapote -a como decimos aca- enecumene, por que el código es a como lo ha puesto KeyBoy. Lo que sucede es que cuando vas a duplicar los registros o insertar regitros desde otra tabla no se necesita de la palabrita "values", simplemente queda a como lo ha dicho KeyBoy.

A inicio me dio error porque siempre utilizaba "Values"

Gracias KeyBoy.

Enecumene: También estaba viendo a las chicas .
Vale, no sabia que estabas poniendo values, si mi propuesta no lo tiene, pero bueno, te funciono, no?

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #13  
Antiguo 01-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Vale, no sabia que estabas poniendo values, si mi propuesta no lo tiene, pero bueno, te funciono, no?

Saludos.
No me funcionó porque cuando la prove no le quité el "values"

Saludos.

Cita:
Empezado por egostar Ver Mensaje
A ver, prueba esto amigo D&W

Código SQL [-]Insert into DetallesTable (PADRE, TIPO, CODIGO, DESCRIPCION)
VALUES :CODIGO_NUEVOPADRE,
(Select Tipo from DetallesTable Where PADRE = :CODIGO_PADREORIGINAL),
(Select Codigo from DetallesTable Where PADRE = :CODIGO_PADREORIGINAL),
(Select Descripcion from DetallesTable Where PADRE = :CODIGO_PADREORIGINAL)


Salud OS

Edito: Vaya, pues ya tienes la solución, bien por esa keyboy
PD.: Gracias ego, se nota que eres un buen programador, en especial en SQL
Edito: Me gustan tus sub-sub-sub selects
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
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
Duplicar form Delar OOP 8 05-12-2006 00:25:34
Duplicar una tabla JULIPO MySQL 7 06-05-2006 19:20:09
Duplicar un Objeto Fita SQL 5 01-05-2005 15:14:33
Duplicar tabla k2k2k2 Firebird e Interbase 2 11-07-2004 07:02:20
para no dejar duplicar registros en InterBase Giniromero Firebird e Interbase 5 21-06-2003 02:05:03


La franja horaria es GMT +2. Ahora son las 16:23:47.


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