Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-02-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Archivos TXT y MySQL

Hola a todos hace pocos dias puse un hilo como este. se que se ha hablado mucho del tema. pero tengo una curiosidad (duda). necesito cargar un archivo txt separado por comas a una tabla de MySQL. sucede que en algunas busquedas sugeridas me encontré con la siguiente instruccion


<DIV class=frame_codigo_sql>Código SQL [-]<DIV class=texto_codigo_sql id=sql_div_4d4bfbb11d209>
Responder Con Cita
  #2  
Antiguo 04-02-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Lo siento pongo el mensaje de nuevo. porque algo pasó que no salió correctamente.

Hola a todos hace pocos dias puse un hilo como este. se que se ha hablado mucho del tema. pero tengo una curiosidad (duda). necesito cargar un archivo txt separado por comas a una tabla de MySQL. sucede que en algunas busquedas sugeridas me encontré con la siguiente instruccion

Código SQL [-]
size="3">load data infile "C:/CR/Archivo.txt"
size="3">into table tablatexto
size="3">fields terminated by ","


Lo que pasa es que funciona de maravillas con mi servidor MySQL version 5. sin embargo el cliente de mi aplicacion tiene instalada la version 5.1 de MySQL y le salta el siguiente error al ejecutar la consulta: Date Truncated From column: "Nombre campo". he de destatacar que la tabla para donde se envian los datos del archivo txt tiene la misma estructura en ambos servidores, pues es generada por la propia aplicacion, además el archivo TXT que se intenta cargar también es el mismo.

Gracias por sus atenciones
Responder Con Cita
  #3  
Antiguo 04-02-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.737
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Te faltaría comprobar que la estructura de la tabla también sea la misma. (Campos y orden de los campos)
(No conozco MySQL, por lo que no se si es una tabla temporal o algo asi.)

Seguramente algún registro tiene una coma en medio. A mi me sucedió alguna vez...

Supón que el archivo es:
NUMERO, NOMBRE, IMPORTE
1, JUAN PEREZ, 100.12
2, ACME, S.A., 200.34
3, OTRA COSA, 1244.26

ACME, S.A. tiene un a coma en medio y trataría el valor "S.A." como importe...

La forma correcta de generar un archivo CSV es separar por comas los valores y si es un string, meterlo dentro de comillas dobles.
NUMERO, NOMBRE, IMPORTE
1, "JUAN PEREZ", 100.12
2, "ACME, S.A.", 200.34
3, "OTRA COSA", 1244.26

Cita:
Date Truncated From column: "Nombre campo"
Supongo que la coma mal puesta hace que los campos se corrar una posicion y trate de meter [NOMBRE] donde debe ser [FECHA]
Responder Con Cita
  #4  
Antiguo 04-02-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Gracias por la respuesta
pero no es el caso. la estructura de las tablas es la misma. y el archivo txt tambien

En el servidor version 5 anda perfectamente. gracias una vez mas
Responder Con Cita
  #5  
Antiguo 04-02-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Hola de nuevo

los dos ultimos campos de la tabla son de tipo Double, donde se guardan dos importes. ahora cambiando en la version 5.1 de My SQL a Varchar estos campos veo que se incluye en el ultimo campo el caracter de ESC.

pense que se podria solucionar incluyendo la linea

LINES TERMINATED BY '\n'

pero sigue apareciendo. alguna idea ?
Responder Con Cita
  #6  
Antiguo 04-02-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por cmfab Ver Mensaje
he de destatacar que la tabla para donde se envian los datos del archivo txt tiene la misma estructura en ambos servidores
Cita:
Empezado por cmfab Ver Mensaje
los dos ultimos campos de la tabla son de tipo Double, donde se guardan dos importes. ahora cambiando en la version 5.1 de My SQL a Varchar estos campos veo que se incluye en el ultimo campo el caracter de ESC.
Por fin, ¿tienen o no la misma estructura?

Sería bueno que aclararas esto y que especificaras más el formato en que generas los TXT, por ejemplo, ¿encierras los campos entre comillas?

// Saludos
Responder Con Cita
  #7  
Antiguo 04-02-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Gracias si si. tienen la misma estructura
los datos son por ejemplo

Juan, 1345.45, 123.78

La tabla tiene la misma estructura en ambos servidores

Nombre Varcar(30)
Importe1 Double
Importe2 Double.

En el servidor con mysql 5 funciona como un rayo (a la perfecccion)

En el servidor con MySQL 5.1 salta el error : DataTruncated For column: Importe2.

lo que explicaba es que pensaba por queé el ultimo campo si importe1 tiene la misma estructura ?.

Entonces lo que hice fue a modo de prueba cambiar la estructuta de los campos importes a strings (por ejemplo varchar(15) ) y allí funcionó la consulta pero veo que despues de los valores del campo importe2 pone el caracter ESC al final del numero (se ve como un cuadrito pequeño)
Responder Con Cita
  #8  
Antiguo 04-02-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Resuelto el problema

incluyendo la linea

LINES TERMINATED by "\r\n" ( antes las colocaba al revés). debio ser eso. pero todavia queda la incognita porque la instruccion sin esta linea funciona bien en el server con la version 5.

Saludos y Gracias a todos
Responder Con Cita
  #9  
Antiguo 04-02-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.737
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Cita:
pero todavia queda la incognita porque la instruccion sin esta linea funciona bien en el server con la version 5
Paga a Oracle unos cuantos miles y se lo podrás preguntar
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
Sincronizar BD MySQL Hosting con BD MySQL servidor local ivantech MySQL 3 09-03-2010 19:01:07
Reindexar archivos mysql golf2008 MySQL 2 08-05-2008 13:45:14
Abrir archivos con nombres de archivos de otra codificación. matabyte Windows 2 01-05-2008 01:40:13
Monitoreo de actividad en archivos MySql Carlos Arevalo MySQL 2 30-07-2007 17:03:38
Migración Archivos Planos a MySQL - Velocidad samantha jones Conexión con bases de datos 3 19-01-2006 01:25:11


La franja horaria es GMT +2. Ahora son las 07:45:37.


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