Ir al contenido


Foto

Copiar un registro


  • Por favor identifícate para responder
31 respuestas en este tema

#1 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 10 septiembre 2009 - 12:35

Hola chicos, pues eso, puedo copiar la info de un registro a otro en la misma tabla de manera directa ? Usando Firebird...

Claro con la llave diferente :p

Saludox !  :D
  • 0

#2 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 10 septiembre 2009 - 01:20

Hola chicos, pues eso, puedo copiar la info de un registro a otro en la misma tabla de manera directa ? Usando Firebird...

Claro con la llave diferente :p

Saludox !  :D




sql
  1. INSERT INTO TABLA (campo1, campo2, campo3) VALUES (SELECT Campo1, Campo2, Campo3 FROM TABLA WHERE id = :id)


  • 0

#3 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 10 septiembre 2009 - 01:27


Hola chicos, pues eso, puedo copiar la info de un registro a otro en la misma tabla de manera directa ? Usando Firebird...

Claro con la llave diferente :p

Saludox !  :D




sql
  1. INSERT INTO TABLA (campo1, campo2, campo3) VALUES (SELECT Campo1, Campo2, Campo3 FROM TABLA WHERE id = :id)



Gracias eduarcol, pero siendo copia en la misma tabla, me manda un error en el ID porque quiere guardarse con el mismo, cómo puedo decirle que ese campo se guarde con un otro valor que no sea el copiado ?

Saludox !  :D
  • 0

#4 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 10 septiembre 2009 - 01:32



sql
  1. INSERT INTO TABLA (ID, campo1, campo2, campo3) VALUES ('Valor Clave', SELECT Campo1, Campo2, Campo3 FROM TABLA WHERE id = :id)


  • 0

#5 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 10 septiembre 2009 - 01:35

Gracias de nuevo amigo,

Lo he intentado asi:



sql
  1. INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  2. VALUES ('HOLA','ADIOS',SELECT FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001')



Pero me manda un error que dice: Token Unknown SELECT  :cry:


  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 septiembre 2009 - 01:37

Hola amiguita, te falto unos parentesis :D



sql
  1. INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  2. VALUES ('HOLA','ADIOS', (SELECT FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS
  3.                           WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )



Salud OS


  • 0

#7 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 10 septiembre 2009 - 01:39

Hola amiguita, te falto unos parentesis :D



sql
  1. INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  2. VALUES ('HOLA','ADIOS', (SELECT FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS
  3.                           WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )



Salud OS


Nop !... ahora me marca que la coma (,) es el Token Unknown...  :(

Se está rebelando esta consulta  :
  • 0

#8 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 10 septiembre 2009 - 01:43

tienes razon, me funciona es haciendo un select por cada campo, pero es mucho proceso para la BD dejame investigar a ver que consigo

  • 0

#9 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 10 septiembre 2009 - 01:44

tienes razon, me funciona es haciendo un select por cada campo, pero es mucho proceso para la BD dejame investigar a ver que consigo


Gracias amigo,  :embarrassed:...

Me temo que por lo pronto lo haré a patí­n  (n), jejeje

Saludox !  :D
  • 0

#10 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 septiembre 2009 - 01:45

Pues entonces hagamos una chapuza :D :D :D :p



sql
  1. INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  2. VALUES ('HOLA','ADIOS', (SELECT FEC_AVIS FROM SAAIO_AVITRAS
  3.                         WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001'),
  4.                         (SELECT TIP_OPER FROM SAAIO_AVITRAS
  5.                         WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )



Salud OS
  • 0

#11 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 septiembre 2009 - 01:47

tienes razon, me funciona es haciendo un select por cada campo, pero es mucho proceso para la BD dejame investigar a ver que consigo


:undecided: :undecided: :undecided:

¿será.........?

Salud OS
  • 0

#12 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 10 septiembre 2009 - 01:48

Pues entonces hagamos una chapuza :D :D :D :p



sql
  1. INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  2. VALUES ('HOLA','ADIOS', (SELECT FEC_AVIS FROM SAAIO_AVITRAS
  3.                         WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001'),
  4.                         (SELECT TIP_OPER FROM SAAIO_AVITRAS
  5.                         WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )



Salud OS


No amiguito, ahora me manda errores de Key Violation ! y el registro aun no existe  :(

Edito, parece que ha funcionado :p

  • 0

#13 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 10 septiembre 2009 - 01:51

Prefiero esta chapuza :D:D



sql
  1. INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  2. VALUES ((SELECT 'HOLA','ADIOS', FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS
  3.                         WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )



Una ejecucion menos del select :D
  • 0

#14 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 10 septiembre 2009 - 01:55

Prefiero esta chapuza :D:D



sql
  1. INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  2. VALUES ((SELECT 'HOLA','ADIOS', FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS
  3.                         WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )



Una ejecucion menos del select :D


Me manda un error en la coma de después del 'HOLA'  :s
  • 0

#15 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 10 septiembre 2009 - 02:02


Prefiero esta chapuza :D:D



sql
  1. INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  2. VALUES ((SELECT 'HOLA','ADIOS', FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS
  3.                         WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )



Una ejecucion menos del select :D


Me manda un error en la coma de después del 'HOLA'  :s


prueba colocando 'HOLA' as CampoClave
  • 0

#16 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 10 septiembre 2009 - 02:14

aver así­




sql
  1. INSERT
  2.   INTO SAAIO_AVITRAS
  3.         (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER)
  4. SELECT 'HOLA','ADIOS', FEC_AVIS, TIP_OPER
  5.   FROM SAAIO_AVITRAS                         
  6. WHERE CVE_IMPOO = '000/01' AND
  7. FOL_AVIS = '80000001'





  • 0

#17 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 10 septiembre 2009 - 02:45

Yo intento ejecutar una consulta como esta:



sql
  1. INSERT INTO tabla1  (NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA)
  2. SELECT NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA FROM TABLA1
  3. WHERE NOMBRE = 'a'



Y no me funciona (tengo Firebird 1.5.3).

El error que me sale es este:



delphi
  1. Invalid insert or update value(s): object columns are
  2. constrained - no 2 table rows can have duplicate column values.
  3. violation of PRIMARY or UNIQUE KEY constraint "PK_TABLA1" on table "TABLA1".



Probé distintas variaciones de ésta, con y sin la clave... pero nada. ¿Tal estoy de la cabeza? :s

¿Donde ando metiendo mal el dedo? *-) 8-)

Saludos,
  • 0

#18 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 10 septiembre 2009 - 02:58

Yo intento ejecutar una consulta como esta:



sql
  1. INSERT INTO tabla1  (NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA)
  2. SELECT NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA FROM TABLA1
  3. WHERE NOMBRE = 'a'



Y no me funciona (tengo Firebird 1.5.3).

El error que me sale es este:



delphi
  1. Invalid insert or update value(s): object columns are
  2. constrained - no 2 table rows can have duplicate column values.
  3. violation of PRIMARY or UNIQUE KEY constraint "PK_TABLA1" on table "TABLA1".



Probé distintas variaciones de ésta, con y sin la clave... pero nada. ¿Tal estoy de la cabeza? :s

¿Donde ando metiendo mal el dedo? *-) 8-)

Saludos,


Alli lo que esta pasando es que estas duplicando la clave principal, esta debe ser distinto.
  • 0

#19 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 10 septiembre 2009 - 03:17

Efectivamente eduardo. Dice que se se debe pasar una clave distinta. Pues, modifico la consulta para que el valor a insertar en la clave sea otro... e igualmente salta el error. :s

A eso voy.

Por ejemplo esto:

select ID, NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA
from tabla1
where NOMBRE = 'Marcelo'

Me dá un solo resultado, como es de esperar:


delphi
  1. ID NOMBRE FECHA CANTIDAD MONEDA FECHA1 INTPEQUE HORA
  2. 951 Marcelo 10/09/2009 25 365 10/10/2009 10 05:44:38 p.m.



Digamos ahora que quiero insertarlo nuevamente, con otra clave:



sql
  1. INSERT INTO TABLA1 (ID, NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA)
  2. SELECT ID + 100, NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA
  3. FROM tabla1
  4. WHERE NOMBRE = 'Marcelo'



IBExpert deja de responder ... vuelvo a abrirlo, y a revisar los valores. No se insertó.

¿Entonces? :s

Se que no estoy totalmente concentrado... no logro ver el maldito error. Me hace falta despejarme... y cargar combustible.

En teorí­a según el estandar SQL, una instrucción SQL
INSERT INTO TABLA
SELECT (...)
FROM TABLA
WHERE ....

Deberí­a funcionar. Algo mal debo estar haciendo y no lo veo :s. No he probado con la variante "Values ()". Tal vez por allí­ venga la mano.

Saludos,
  • 0

#20 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 10 septiembre 2009 - 03:34



delphi
  1. Qry_Copia.SQL.Text := 'INSERT INTO SAAIO_AVITRAS '+
  2.                                 'SELECT '+quotedstr(Clave)+','+quotedstr(Folio)+
  3.                                 ',FEC_AVIS,TIP_OPER, TIP_TRAS, TIP_PROGO, NUM_PROGO, CVE_PLANO'+
  4.                                 ',CVE_IMPOD,TIP_PROGD, NUM_PROGD,CVE_PLAND, CVE_REPR, FIR_ELEC'+
  5.                                 ',NUM_FEA,NUM_REFE FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '+
  6.                                 quotedstr(Clave)+' AND FOL_AVIS = '+quotedstr(edr_reforig.Text);



Chicos, aquí­ les dejo la consulta tal como quedó al final y funciona de perlas...  (y)  :D

Gracias a todos por su ayuda  :)

Beshito para mi amor  (k)  (l), saludos para todos los demás !  :D
  • 0




IP.Board spam blocked by CleanTalk.