guizans   30-11-2025, 19:35
#1
En el proyecto que estoy haciendo, los resultado mostrados no me cuadran con los almacenados en la base de datos de SQLite3, así que he hecho pruebas y el resultado es cuanto menos que desconcertante. 

Aquí el código en Gambas:

Código:
Public Sub Main()
 
  Dim conexion As Connection
  Dim resultado As Result
 
  conexion = New Connection
  conexion.Host = File.Dir("/home/mi/.local/share/lineas/")
  conexion.Name = File.Name("lineas.db")
  conexion.Type = "sqlite3"
 
  conexion.Open()
   
  resultado = conexion.Exec("SELECT intervalo, porcentajeCarga FROM LineaEstacions LEFT OUTER JOIN Estacions WHERE idLinea=2 AND Estacions.ID=idEstacions")
  resultado.MoveFirst
 
  While resultado.Available
    Print resultado["intervalo"]
    Print resultado["porcentajeCarga"]
    resultado.MoveNext
  Wend
 
End

Y el resultado de esta consulta sencilla es el siguiente:
Cita:0 %
-228735570
0 %
1
0 %
1
0 %
1

El número negativo que aparece no se de donde sale, y cambia en cada ejecución.
Ahora en Python usando la misma base de datos y la misma consulta:
Código:
import sqlite3

bd = sqlite3.connect("lineas.db")
cursor = bd.cursor()

sentencia = "SELECT intervalo, porcentajeCarga FROM LineaEstacions LEFT OUTER JOIN Estacions WHERE idLinea=2 AND Estacions.ID=idEstacions"
cursor.execute(sentencia)

a = cursor.fetchall()

for intervalo,porcentajeCarga in a:
  print(intervalo)
  print(porcentajeCarga)
 El cual arroja lo siguiente:
Cita:0 %
00:00:00
0 %
00:00:00
0 %
00:00:00
0 %
00:00:0

Lo cual corresponde con lo almacenado en la base de datos. 
Y usando el programa DB Browser usando la misma consulta de la misma tabla el resultado es el mismo que en Python.
En la tabla, intervalo es de tipo INTEGER  TEXT y porcentajeCarga es de tipo TEXT. Estoy usando Gambas 3.20.2 en Debian.

¿Será un bug de esta versión? Es que es increíble.

Un saludo.
Última modificación: Ayer, 22:59 por guizans.
Shordi   Ayer, 08:53
#2
Pasa la estructura de la BD. Con eso podemos ver y reproducir el asunto.
Saludos

No podemos regresar
guizans   Ayer, 22:08
#3
Te paso la base de datos que no contiene casi nada, y es pequeña (no me deja adjuntarla, así que te paso un enlace)

Base de datos.

 A ver si ves lo que puede pasar. Voy a actualizar Gambas a la última versión y veo si sigue el problema.

Acabo de actualizar y el problema sigue siendo el mismo o peor.

Un saludo.

Edit: En Java también da el resultado esperado.
Última modificación: Ayer, 22:52 por guizans.
Rufs   Hace 5 horas
#4
Olá!!

Para obter no formato desejado, precisa alterar o campo na tabela de "INTEGER para TEXT".
Caso não queira alterar a tabela, manipular o código com:

resultado = conexion.Exec("SELECT intervalo, CAST(porcentajeCarga AS TEXT) AS porcentajeCarga FROM LineaEstacions LEFT OUTER JOIN Estacions ON Estacions.ID=idEstacions WHERE idLinea=2")
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.