FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
CSV con datos numericos con decimales.
buenas comunidad.
tengo una tabla con un campo decimal (10,3) al pasar de un archivo csv a mysql con el comando sql "LOAD DATA INFILE" me trunca los decimales. campo en CSV = -1290,345 campo en la tabla = -1290.000 pienso que la problemática esta en la coma en la CSV y el punto en el campo de la tabla . hasta el momento no encontrado nada como para solucionar mi problema. |
#2
|
|||
|
|||
hola!!
Una forma de solucionar este problema es almacenar el valor en una variable temporal y establecer el valor correcto del campo en la sección SET del comando LOAD DATA aplicando una sustitución del separador decimal. Aquí te dejo un ejemplo de como poder hacerlo:
|
#3
|
||||
|
||||
Cita:
Usas Excel para tu archivo CSV??...ya que desde ahi lo puedes configurar para que elijas otro separador, por ejemplo pipe "|"...o cambiar la regionalización de tu S.O. (Windows)...ha de estar Español (España). Saludos.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#4
|
|||
|
|||
Cita:
tengo un error de sentencia SQL no puedo usar cremillas simple por ser caracteres reservados del delphi. como puedo pasar ese error? gracias .. |
#5
|
|||
|
|||
Cita:
MySQL no diferencia entre comillas simples y comillas dobles, por lo que puedes usar indistintamente unas u otras. Para usar en delphi las comillas simples dentro de una cadena entrecomillada, se hace poniendo dos veces la comilla simple por ejemplo
Por otra parte MySQL te dará error en esta línea puesto que la sentencia LOAD DATA INFILE es muy restrictiva y no acepta parámetros para el nombre del fichero ni integrarla en procedimiento y funciones almacenadas en la BBDD. Por lo que tendrás que poner el nombre del fichero directamente desde delphi |
#6
|
|||
|
|||
Cita:
no eh tenido ningún problema con ese parametro en esa línea, pero sigo con los problemas con las comillas. |
#7
|
|||
|
|||
Hola!!
yo he probado con este código y a mi me funciona perfectamente
como se aprecia en el código la línea de num1, usa las dobles comillas y para la línea de num2 las comillas simples. Por lo que las comillas no creo que sean el problema, pues se puede usar unas u otras independientemente En cuanto a lo del parámetro P1 a mi también me ha funcionado usándolo desde el componente de QUERY de DELPHI :-). Para poder ayudarte mas, indica el error exacto que obtienes |
#8
|
|||
|
|||
Cita:
comprueba si puede ser ese el error |
#9
|
||||
|
||||
Siempre que necesites poner comillas en medio de un string que pases desde Delphi a SQL debes usar comillas dobles para que lo pase correctamente: "estoEsLoQuePasoEntrecomillado". No tiene tanto que ver con como maneja tu motor concreto de BD las comillas sino por como maneja Delphi los strings.
Yo normalmente para evitar líos con las comillas uso: QuotedStr(miVariableString). Esto me garantiza el uso de las comillas adecuadas en cada contexto porque uso distintos motores de BD. Sino tan solo debes capturar la query que está enviando, justo antes del ExecSQL, y ver qué es lo que realmente ejecuta. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Longitud máxima de datos numéricos | Drakyto | Varios | 1 | 15-05-2010 02:44:42 |
Sacar datos numericos | jon_g461 | MS SQL Server | 3 | 18-11-2008 18:01:40 |
Validación de Datos Numéricos | TelloClos | Conexión con bases de datos | 4 | 05-12-2007 04:40:44 |
Datos NumÉricos | jadelphi | Varios | 1 | 31-03-2005 17:49:07 |
Usar datos no númericos en un TDBChart | Er_Manué | OOP | 0 | 27-08-2003 20:58:48 |
|