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 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.