Conversion De Datos FLOAT Desde Sqlite3 (SOLUCIONADO)


Objetivo: Conversion De Datos FLOAT Desde Sqlite3 (SOLUCIONADO)
Hola a todos.
Le he dado 100 vueltas y no me sale.

Tengo una base de datos en Access. La exporto a formato CSV el cual abro con Excel y adapto a mi tabla en Sqlite3 con los nombres de mis campos en la cabecera y demás.
Importo este desde SqliteManager de Mozilla Firefox y todo va bien.
Si miro esa tabla desde SqliteMan, Sqlite Data Browser o el propio SqliteManager, veo el campo impfac correctamente con su importe de factura en formato FLOAT 1742.98 por ejemplo.

Cuando voy a mi programa y leo el campo en cuestión desde Gambas3, sorpresa, lo que me aparece es 1E-323 por ejemplo y todos así o parecidos, excepto los que como no tienen decimales han sido capturados como enteros y entonces se ven correctamente.

Mi pregunta es que función usan SqliteManager y los otros para sacar el número correcto, porque yo usando VAL o CFLOAT me dice que verdes las han segado que espera un FLOAT y obtiene un String.

Supongo que habrá una función de conversión pero no se aplicar ni si es eso Dconv() ni Conv() por lo de que viene de windows.
La conexión me dice que el charset es utf8

Agradecería si alguien le ha ocurrido, como solucionarlo. Una vez que sepa que función se usa es sencillo hacer un rastreo de la tabla y cambiar ese dato para que se almacene correctamente.
Lo he hecho con SqliteManager porque a través de Firefox (vieniendo como viene de Access en Windows) no tengo que hacer nada para leerlo en Linux con el mismo programa. De hecho lo lee correctamente.

Por cierto que en Sqlite3 desde consola también se puede consultar y sale el numero en formato correcto. Sólo me falla en Gambas3

Socorro y gracias

Trabajo con los repositorios de gambas y estoy actualizado a la última versión y mi S.O es Linux Mint 17.3

Muchas gracias

última edición por ahtonio el Jueves, 05 May 2016, 23:27; editado 2 veces
Perfil MP  
Objetivo: Re: Conversion De Datos FLOAT Desde Sqlite3
Sin ver la base no puedo estar seguro, pero me suena a que has pasado el float con . en lugar do , o viceversa...

Perfil MP  
Objetivo: Re: Conversion De Datos FLOAT Desde Sqlite3
Supongo que una vez que importas los datos a sqlite no vuelves a importarlos de nuevo, es decir no "trabajas" metiendo datos en access.
Si este es el caso, te recomendo la herramienta mdbtools, que funciona muy bien para extraer tablas enteras de un mdb a .csv o inclusive podes llegar a hacer el sql enterito para importar en sqlite.
Luego para importar los datos en sqlite, creo que te sucede algo como lo que dice Shordi.
Para controlar esas cosas tienes que editar el .csv reemplazando las comas por puntos o los puntos por comas.
Ten cuidado en el carácter que eliges para exportar los datos en mdbtools porque si tenes comas o puntos entre los valores de los registros luego tendras problemas. asi que te recomiendo que elijas una cadenas de texto como separador del estilo [#FS#].
Si tus tablas de excel tienen texto tipo "memo", también cuidado ahí porque en ese campo se pueden poner caracteres de salto de linea.
para no tener inconvenientes usa el carácter "inventado" de salto de linea [#LS#] en mdbtools.

Saludos.

Perfil MP  
Objetivo: Re: Conversion De Datos FLOAT Desde Sqlite3
Solucionado
El problema son las comas en los miles (como se ha comentado)
Cuidado!! Las fechas tienen que entrar en sqlite con formato yyyy-mm-dd hh:mm sino se monta un 'cacao' al convertir de cuidado

En mi caso la migración es total y no vuelvo a tocar access.

Mdbtools lo use en otra ocasión y para que los datos entraran tuve que hacer un script con múltiples sentencias sed para adecuar las instrucciones y funciono pero con firefox y sqlite manager ha sido mucho más fácil una vez que sabes lo que falla.

También es muy buena idea cambiar el carácter separador.

Todo esto lo comento por si alguien se ve en la situación.

Muchas gracias por las respuestas.

Perfil MP  
Objetivo: Re: Conversion De Datos FLOAT Desde Sqlite3
ahtonio escribió: [Ver mensaje]
...Mdbtools lo use en otra ocasión y para que los datos entraran tuve que hacer un script con múltiples sentencias sed para adecuar las instrucciones y funciono pero con firefox y sqlite manager ha sido mucho más fácil una vez que sabes lo que falla.

Me alegro que lo hayas solucionado.
Podrías explicar el método que usas con firefox con algo mas de detalle estilo tutorial.

Saludos.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4389s (PHP: -87% SQL: 187%)
Consultas SQL: 46 - Debug off - GZIP Activado