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 23-02-2012
AnuardMichelen AnuardMichelen is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 38
Poder: 0
AnuardMichelen Va por buen camino
Actualizar datos entre tablas

Hola amigos, espero que se encuentren bien

Mi base de datos esta en interbase, y el trabajo que necesito hacer es, actualizar unos códigos.

Tengo una tabla llamada SERVICIOS alli tengo un campo llamado ID_SERVICIOS y otro llamado CODIGO. Entonces quiero actualizar el campo ID_SERVICIO y ponerle los datos que tiene el campo CODIGO, esto lo quiero hacer en todas las tablas que se encuentre ID_SERVICIO y ponerle los datos que estan en CODIGO.


Muchas gracias por su ayuda que siempre me es de ayuda.

Dios les bendiga!!!
Responder Con Cita
  #2  
Antiguo 23-02-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
actualizar

se me ocurre que puedes utilizar untrigger en tu tabla servicios.
un trigger en el after update de tu tabla que haga un update en las tablas que contengan id_servicio.
Responder Con Cita
  #3  
Antiguo 23-02-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
algo mas o menos asi

Código SQL [-]


AS
begin
/* Trigger text */
if (new.codigo <> old.codigo) then
update tutabla
set idservicio = new.codigo;

end
Responder Con Cita
  #4  
Antiguo 23-02-2012
AnuardMichelen AnuardMichelen is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 38
Poder: 0
AnuardMichelen Va por buen camino
Muchas gracias amigo....pero como seria le codigo del trigger.

Datos

Tabla: SERVICIOS
Campo: ID_SERVICIO
Campo: CODIGO
Responder Con Cita
  #5  
Antiguo 23-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por AnuardMichelen Ver Mensaje
[b]Tengo una tabla llamada SERVICIOS alli tengo un campo llamado ID_SERVICIOS y otro llamado CODIGO. Entonces quiero actualizar el campo ID_SERVICIO y ponerle los datos que tiene el campo CODIGO...
Hola Anuard.

Si no te entendí mal, para actualizar el campo ID_SERVICIO con los valores del campo CODIGO, basta con hacer:
Código SQL [-]
UPDATE SERVICIO 
SET ID_SERVICIO = CODIGO

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 23-02-2012
AnuardMichelen AnuardMichelen is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 38
Poder: 0
AnuardMichelen Va por buen camino
Gracias lo hice pero me genero este error



Overflow occurred during data type conversion.
conversion error from string "D0120".
conversion error from string "D0120".
Responder Con Cita
  #7  
Antiguo 23-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Desconocía el tipo del campo CODIGO.

Entonces probá de este modo:
Código SQL [-]
UPDATE SERVICIO 
SET ID_SERVICIO = CAST(CODIGO AS INTEGER)
( Suponiendo que ID_SERVICIO sea de tipo entero y CODIGO no tenga caracteres alfabéticos )

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 23-02-2012
AnuardMichelen AnuardMichelen is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 38
Poder: 0
AnuardMichelen Va por buen camino
Lo mismo me da este error

Overflow occurred during data type conversion.
conversion error from string "D0120".
Responder Con Cita
  #9  
Antiguo 23-02-2012
AnuardMichelen AnuardMichelen is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 38
Poder: 0
AnuardMichelen Va por buen camino
id_servicio es INTEGER

codigo es VARCHAR
Responder Con Cita
  #10  
Antiguo 23-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Es realmente muy extraño, siendo:
  • ID: INTEGER
  • CVE_ART: VARCHAR(6)
Prueba realizada en IBExpert:
Código SQL [-]
UPDATE TABLA SET ID = CAST(CVE_ART AS INTEGER)

Prueba realizada desde Delphi con TIBQuery:
Código Delphi [-]
...
  with IBQuery1 do
  begin
    Close;
    SQL.Text:= 'UPDATE TABLA SET ID = CAST(CVE_ART AS INTEGER)';
    ExecSQL;
    Close;
  end;
...
En ambos casos funciona correctamente... Quizá debas aportarnos más información, como que tipo de componentes estás usando, etc.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 24-02-2012
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Hombre, parece claro que donde dice

Código SQL [-]
conversion error from string "D0120".

está intentando convertir a un entero una cadena que empieza por "D"...

Saludos
Responder Con Cita
  #12  
Antiguo 24-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ElKurgan Ver Mensaje
Hombre, parece claro que donde dice

Código SQL [-]
conversion error from string "D0120".

está intentando convertir a un entero una cadena que empieza por "D"...

Saludos
Totalmente correcto , yo no había prestado atención a ese detalle... aunque en el mensaje #4 se lo había advertido:
Cita:
( Suponiendo que ID_SERVICIO sea de tipo entero y CODIGO no tenga caracteres alfabéticos )
Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Actualizar todas las Tablas Lenny Varios 1 25-01-2011 01:14:48
Como Pasar Informacion Entre Dos Bases De Datos Con Tablas Identicas? MaSSaKKre SQL 8 06-02-2008 16:20:29
actualizar registros entre dos tablas Paradox Lenny Varios 4 18-01-2008 15:13:09
Actualizar Tablas Ledian2006 Conexión con bases de datos 2 12-01-2006 14:43:01
SQL UPDATE entre 2 tablas de Diferente base de datos Luis Alberto SQL 1 11-11-2005 04:52:18


La franja horaria es GMT +2. Ahora son las 18:52:33.


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