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 24-02-2004
Ulises Ulises is offline
Miembro
 
Registrado: may 2003
Ubicación: Santiago de Chile
Posts: 82
Poder: 22
Ulises Va por buen camino
Copiado de Tablas

Hola muchachos,

Necesito efectuar copias de algunas tablas dentro de mi bd, el problema es que debo de cambiar el contenido de una de las columnas dentro de los nuevos archivos, en realidad la columna es la que identifica el numero de la empresa dentro de cada una de las tablas.

Quiero realizar esto en firebird mediante sp, pero no se me ocurre, la idea principal es que aun si se cambie la estructura de una de las tablas esta no meta ruido cuando se hagan las copias, es decir copia la nueva estructura.

Gracias de antemano

Ulises
Responder Con Cita
  #2  
Antiguo 24-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Código:
Insert into tabla2 (col1, col2, col3)
  Select col1, col2, col3 + 500
    from tabla1;
Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 24-02-2004
Ulises Ulises is offline
Miembro
 
Registrado: may 2003
Ubicación: Santiago de Chile
Posts: 82
Poder: 22
Ulises Va por buen camino
Gracias por tu respuesta, pero lo que me gustaria es obtener los nombres de los campos y a la vez el contenido de estos para colocarlos en un string y ejecutarlo posteriormente.

No se si han visto como exporta el ibexpert, es algo parecido pero ademas yo quiero cambiar el contenido de una columna.

Slds

Ulises
Responder Con Cita
  #4  
Antiguo 24-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Podes basarte en el diccionario de datos. Específicamente en las tablas rdb$relations y rdb$relation_fields, para construir la sentencia al vuelo.

Por supuesto, tendrás que incluir la lógica para identificar la columna que queres cambiar y meter el cambio a mano...

algo como

Código:
if (columna = 'LACOLUMNAQUEQUIERO') Then
  Sentencia = Sentencia || 'nuevovalor, ';
else
  Sentencia = Sentencia || columna || ', ';
hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 27-02-2004
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Smile Respuesta a Ulises

Uli

Utilizando execute statement de FireBird 1.5 puedes hacer una cadena (String) uniendo el Insert como el select .

Ejemplo
Sql1 = 'Insert Into ' || TABLA || ' (<campos>,'
Sql2 = 'Select <Campo1Key> + 1,';

...
.
....

..
Sql3 = sql1 || sql2 ;
execute statement sql3;

Con eso puedes copiar Registros de la Misma Tabla con diferente key

Juan carlos

Última edición por teletranx fecha: 04-03-2004 a las 01:34:33.
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


La franja horaria es GMT +2. Ahora son las 04:46:24.


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