FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Leer un TXT e insertar en tabla de firebird
hola
No se si este es el foro correcto para publicar este mensaje, el caso es que si no lo es al moderador que me corrija, de antemano gracias, lo que quiero es que me echen una mano pero de adeberas, porque estoy corto de tiempo y tengo que resolverlo rápido, estoy realizando un modulo que cargue un archivo txt de mas de 100,000 lineas y lo inserte en una tabla de firebird. generar el archivo no fue problema pero estoy un poco atareado con lo de leer el archivo "se que hay mucha documentación pero necesito una mano rápido", les ruego que si alguien tiene una función ya creada o definida para leer un txt separado por "|" y que de paso me explique como cárgalo a un dataset o que pueda pasar cada campo leido del TXT a una variable para luego pasársela al dataset cualquiera me da igual. necesito esta ayudita urgente plssss. muchas gracias |
#2
|
|||
|
|||
Hola
me parece que es más simple y eficiente hacerlo a nivel servidor usando external file. Por favor mirá este enlace [1] es viejo, no sé cuanto habrá cambiado firebird, pero debiera funcionar. Saludos TJose [1] http://www.clubdelphi.com/foros/showthread.php?t=35902 |
#3
|
|||
|
|||
gracias por responder
resulta que ya estuve utilizando el formato de ancho fijo pero resulta que es muy complicado cuando es un usuario el que va a lidiar con el archivo de texto. siempre que un carácter o espacio o cualquier cosa daña una posición y wala el proceso esta trancado. mejor prefiero que sea delimitado esto me evitaría un poco de dolor de cabeza. eh visto muchos procesos pero ninguno me dejan claro y no dispongo de mucho tiempo para analizar y fusionar código, es por esto que, apelo a alguien que disponga de dicha rutina o que me ayuden a armarla, se de antemano que son varios pasos como:
otra cosa, es que el proceso sera manipulado por un usuario normal y no dispone de experiencia para manipulación el proceso debe ser simple un modulo de la aplicación donde se capturan los datos de producción y se genera un TXT el cual es transportado a través de un medio extraible a la dependencia principal y la aplicación servidor leer el archivo y lo carga a la base de datos central. todo este proceso debe ser a través de un ambiente amigable y simple. Última edición por ivantech fecha: 09-08-2010 a las 03:32:55. |
#4
|
||||
|
||||
Hola
A ver:
Uso:
Saludos
__________________
Siempre Novato |
#5
|
|||
|
|||
hola caral
nada mas aclarando una dudita, la confusión mia es por lo del WORD el primer procedimiento, a ver para que me aclares convierte un DOC a TXT o que??? porque ya pude generar el archiv txt ej: Código:
SRS1012101001120100707121115|SRS1|1|21|1|1|000-0000000-0|RUTH ESTHER RODRIGUEZ|N|DO|N||0|0||N|2|13/02/2007|16|5|3|3|1|2||J129|1|27|2466||0||||0|0||0|0|0|0||||S|N|N|N|N||1|MARIA C|002-0101672-2|N||||07/07/2010|12:11:16|29/07/2010 SRS1012101001120100715105037|SRS1|1|21|1|1|000-0000000-0|FLORENDA ALTAGRACIA ROSARIO|N|DO|N||24|1|020733496|N|2|13/10/1959|17|9|50|1|1|2||J00|2|27|2466||0||||0|0||0|0|0|0||||S|N|N|N|N||1|ARIANNA|002-0105013-5|N||||15/07/2010|10:50:38|30/07/2010 SRS1012101003120100707132616|SRS1|1|21|1|3|000-0000000-0|FRANCISCA RAMIREZ|N|DO|N||24|1|018712317|N|2|02/04/1975|19|3|35|4|1|2||R104|1|27|2466||0||||0|0||0|0|0|0||104314||S|N|N|N|N||1|DR.GUILLEN|002-0077118-6|N||||07/07/2010|13:26:17|21/07/2010 SRS1012101001120100618142317|SRS1|1|21|1|1|000-0000000-0|JUAN DELGADOS|N|DO|N||24|1|053232486|N|1|26/07/1966|1|1|44|1|1|2||J00|1|27|2466||0||||0|0||0|0|0|0||||S|N|N|N|N||1|ARIANNA|002-0105013-5|N||||18/06/2010|14:23:18|26/07/2010 SRS1012101003120100705111924|SRS1|1|21|1|3|000-0000000-0|LIDIA FERMIN|N|DO|N||24|0|021292030|N|2|18/03/1951|3|4|59|4|1|2||H669|1|27|2466||0||||0|0||0|0|0|0||104561||S|N|N|N|N||1|DR.GUILLEN|002-0077118-6|N||||05/07/2010|11:19:24|21/07/2010 SRS1012101003120100712144239|SRS1|1|21|1|3|000-0000000-0|MARIA ELENA GURIDYS|N|DO|N||24|1|018174641|N|2|05/09/1950|16|10|59|4|1|2||J00|1|27|2466||0||||0|0||0|0|0|0||104341||N|N|N|N|N||1|DR.GUILLEN|002-0077118-6|N||||12/07/2010|14:42:39|21/07/2010 |
#6
|
|||
|
|||
Cita:
Saludos |
#7
|
||||
|
||||
Hola
El codigo trabaja con archivos TXT o DOC, cualquiera. Me da la impresion, viendo el contenido del archivo text que vas a necesitar crear un array y este tendra que poseer los datos, los que posteriormente se tendran que pasar a la tabla en cuestion, ya que mencionas que son varios campos. No lo veo muy complicado, lo que si veo es que tendras algo de trabajo para acomodarlo a lo que necesitas. Saludos
__________________
Siempre Novato |
#8
|
|||
|
|||
si eso mismo, pero no se como trabajar esa parte del array si me pudieran echar una manito se los agradeceria bastante, estoy medio estancado con esto.
|
#9
|
||||
|
||||
Hola
Aqui no solo hay que tomar en cuenta lo que hace o no un array. Hay que saber: 1-Cuantos campos tiene la tabla?. 2-Siempre se actualizan todos, los mismo, en el mismo orden?. 3-Es necesario una vista previa antes de guardar (para detectar errores)??. Ademas es necesario añadir al codigo: La eliminacion de la barra antes de guardar el dato. La eliminacion de espacios. La consecuente revision de que si llego al ultimo campo regrese a la primer campo y vuelva a guardar. Como dije, es una faena interesante que te queda por delante. Saludos
__________________
Siempre Novato |
#10
|
|||
|
|||
Una pregunta?,tiene que ser necesariamente un txt?, por que no un xml u otro formato para el que ya exista soporte para hacer el parseo?
__________________
Saludos Alfredo |
#11
|
|||
|
|||
Pues según leo, me parece que si es necesario que sea un .txt, ya que parece ser que es un usuario el que va a manipular dicho archivo...
Ahora, para hacer el parseo que quieres, puedes usar la clase TStringList para lo que quieres, solo cargas cada línea en un TStringList y usas las propiedades que tiene para estos casos:
Este es solo un ejemplo de como lo deberías hacer, para más información busca en la ayuda de Delphi sobre la clase TStringList. Saludos... |
#12
|
||||
|
||||
Esto te puede servir??
1 Crear un archivo llamado script.sql (o como quiera llamarlo) con el contenido a insertar en la tabla, por ejemplo:
2 Ejecutar en un archivo bat o en linea de comandos algo como lo siguiente: Cita:
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" |
#13
|
||||
|
||||
mmm creo que mi comentario anterior fue una respuesta al titulo del hilo sin leer el contenido...
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" |
#14
|
||||
|
||||
resp
con una simple consulta.
conectate con un ib_query u el compnenente queuses. preparas la consulta lees el archivo con tmemorystream. y luego cargar el parametro al ib_query. y listo.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
actualizar tabla al insertar en otra tabla | hybrid | Conexión con bases de datos | 14 | 02-12-2009 15:09:13 |
leer txt con firebird | laukri | Firebird e Interbase | 6 | 06-01-2008 18:06:52 |
Leer/insertar/modificar datos desde un archivo XML | IVAND | Varios | 1 | 26-08-2006 23:11:29 |
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla | taru | MySQL | 1 | 27-07-2006 15:36:12 |
Como insertar datos de una tabla en otra tabla? | Salomon | Firebird e Interbase | 1 | 28-08-2003 11:29:40 |
|