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 05-08-2018
rg5820 rg5820 is offline
Registrado
NULL
 
Registrado: oct 2012
Posts: 7
Poder: 0
rg5820 Va por buen camino
Post Actualizar una tablas desde un archivo de texto.

Hola a todos.!
Tengo que resolver un problema

Tabla : Items
Código:
  ID       CODIGO  
-------  -------------
162600     1010P
162700     1021P
162800     103AP
163200     205DP
Tabla : Articulos
Código:
FK_ITEMS   CODIGO_SEGUNDO  
--------  ---------------------------
162600               00000
162700               00000
162800               00000
163200               00000
Necesito actualizar el campo CODIGO_SEGUNDO de la Tabla Articulos

La información para actualizar esta contenida en un archivo de texto.
En este archivo tengo una linea de texto que tiene en las primeras posiciones el CODIGO de la Tabla Items y seguidamente el contenido que tengo que actualizar en el campo CODIGO_SEGUNDO

Por ejemplo en el archivo Novedades.txt tengo la siguiente informacion:
Código:
   1010P     0808B 
   1015P     0808B 
   1018P     0808B 
   1021P     0808A
   205DP     0805C
Es decir en el caso del primer registro, para el codigo 1010P usando el campo ID de la tabla Items (162600) debo acceder a la tabla Articulos y actualizar el campo CODIGO_SEGUNDO con el valor 0808B

Si la cantidad de registros para actualizar fueran pocos seguramente una instruccion del tipo:
Código SQL [-]
update ARTICULOS
set CODIGO_SEGUNDO = '0808B'
where (select CODIGO from ITEMS where ARTICULOS.FK_ITEMS = ITEMS.ID) in  ('1010P', '1015P', '1018P')
Pero al ser una gran cantidad de registros es algo impractico copiar toda esa informacion en una o varias instruciones.
No tengo posibilidades de modificar la estructura de la base para crear una tabla que tenga la estructura del archivo Novedades.txt para luego intentar importar los datos y actualizar la tabla articulos.

¿hay alguna forma de leer secuencialmente este archivo de texto mientras actualizo la base articulos?

Cualquier sugerencia o ayuda sera bien recibida.
Muchas Gracias.

Última edición por Casimiro Notevi fecha: 05-08-2018 a las 13:19:39.
Responder Con Cita
  #2  
Antiguo 07-08-2018
Alex Mireles Alex Mireles is offline
Miembro
NULL
 
Registrado: nov 2014
Posts: 35
Poder: 0
Alex Mireles Va por buen camino
MI Sugerencia.....

Puedes usar EXCEL, es decir,,,, pones los valores de tus n-tablas en n-hojas de Excel y después en una hoja de Excel vacía y mediante líneas de texto que hagan referencia a los campos de cada registro de cada tabla, haces la CONCATENACION de las instrucciones de UPDATE con los valores de los campos que necesitas.

Al final tendrás un SCRIPT que se genera CASI automáticamente por cada registro y ese lo ejecutas en tu sesión del RDMS(Manejador de Base de Datos).


Nota: Revisa y Usa la función de Excel @concatenar ,, ahí te darás lucidez de mi propuesta.

SALUDOS:
Responder Con Cita
  #3  
Antiguo 07-08-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Hola a todos

si lo que tienes es un fichero de datos tipo CSV o separados por cualquier otro carácter, en MySQL existe un comando que los lee automáticamente y los puedes cargar en una tabla de estructura similar a los propios campos contenidos en el CSV, pudiendo ya trabajar con comandos SQL normales.

Comando MySQL:
Código SQL [-]
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;

Yo no trabajo con FIREBIRD, pero buscando en google vi que este motor de BBDD también tiene un comando similar

Comando FIREBIRD:
Código SQL [-]
CREATE TABLE TABEXPORTA
EXTERNAL FILE 'C:\EXPORTAR\ARQUIVO.TXT' (CODIGO char(12),  NOME char(20),  DATA char(11), SALARIO char(20),QUEBRA char(2) )
información obtenida desde https://groups.google.com/forum/#!to...ro/qMfrEzxpuMg

Y una vez cargados los datos en una tabla, que incluso puede ser temporal, solo seria necesario realizar el típico UPDATE
Responder Con Cita
  #4  
Antiguo 07-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En este caso, con firebird, igualmente se puede leer un archivo de texto como una tabla temporal, trabajar con ella y hacer lo que necesites.
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
Capturar datos desde archivo de texto BlueSteel Varios 9 07-03-2008 00:02:02
Introducir una matriz desde un archivo de texto guano2005 Conexión con bases de datos 2 17-01-2008 16:27:23
Importar a SQL desde Archivo de Texto erasmorc MS SQL Server 8 03-06-2005 21:39:04
Archivo de Texto de dos Tablas jovehe Impresión 0 24-08-2004 21:51:25
Cargar datos desde archivo texto mosorio Firebird e Interbase 1 25-08-2003 21:54:36


La franja horaria es GMT +2. Ahora son las 02:08:12.


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