Campo Boolean En Sqlite3 (Solucionado)


Objetivo: Campo Boolean En Sqlite3 (Solucionado)
Hola a todos y Gracias por adelantado.

Estoy queriendo actualizar el valor de unos campos de una tabla (Base de datos Sqlite3) entre los campos que deseo actualizar están dos de tipo Integer y uno Boolean.


Así me da error:

sql

PUBLIC FUNCTION GuardarRetornoEnvace(NEnv AS Integer, DEnv AS Integer)


FMain.ConectarBase.Exec("UPDATE Envaces SET NEnvase = " & NEnv & ", DepEnvase = " & DEnv & ", Entregado = " & IIf(NEnv = 0, TRUE, FALSE) & " WHERE idemb = " & CInt(ColumnView2.Current[0]))

End

Así también da error:

PUBLIC FUNCTION GuardarRetornoEnvace(NEnv AS Integer, DEnv AS Integer)

FMain.ConectarBase.Exec("UPDATE Envaces SET NEnvase = " & NEnv & ", DepEnvase = " & DEnv & ", Entregado = " & IIf(NEnv = 0, "True", "False") & " WHERE idemb = " & CInt(ColumnView2.Current[0]))

End

El problema esta en la parte Boolean, sin ese fragmento hace la actualización correcta.

Gracias por la ayuda que me pueda dar.

última edición por aristicol el Domingo, 31 Enero 2010, 23:23; editado 2 veces
Perfil MP  
Objetivo: Re: Campo Boolean En Sqlite3
documentacion sqlite:
SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).


traduccion google

SQLite no tiene una clase de almacenamiento por separado de Boole. En cambio, los valores booleanos se almacenan como números enteros 0 (falso) y 1 (verdadero).



por lo tanto la consulta deberia ser :

FMain.ConectarBase.Exec("UPDATE Envaces SET NEnvase = " & NEnv & ", DepEnvase = " & DEnv & ", Entregado = " & IIf(NEnv = 0, 1, 0) & " WHERE idemb = " & CInt(ColumnView2.Current[0]))

End



saludos

Perfil MP  
Objetivo: Re: Campo Boolean En Sqlite3 (Solucionado)
Listo Analizando encontré lo siguiente:

Este tipo de Campo boolean en Sqlite3 manejan realmente valor 0 = False 1 = True, cualquiera entre ello me incluyo espera poder llenar esta campo de forma intuitiva, osea enviando False o True en ese momento es cuando se comete el error debemos enviar es 0 o 1.

Asi:

FMain.ConectarBase.Exec("UPDATE Envaces SET NEnvase = " & NEnv & ", DepEnvase = " & DEnv & ", Entregado = " & IIf(NEnv = 0, 1, 0) & " WHERE idemb = " & CInt(ColumnView2.Current[0]))


Aun es mas confuso cuando el gestor de base de datos de gambas nos muestra contenido de False y True

Gestor de Base de datos de gambas:

pantallazo_3

Examinado datos:

pantallazo_2

Mientras que desde el SQLITE DATABASE BROWSER

pantallazo_4


Listo de esa forma salí del inconveniente se debe enviar 0 o 1 a un campo Boolean en Sqlite.



EDITADO PARA DECIR LO SIGUIENTE:

Agrego esto después de haber posteado porque el foro no me deja dar otra respuesta, debería permitirse:

Gracias nrcefe, creo que cuando estaba redactando esta solución, tu ya habías respondido.

última edición por aristicol el Domingo, 31 Enero 2010, 23:16; editado 1 vez
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.5617s (PHP: -84% SQL: 184%)
Consultas SQL: 47 - Debug off - GZIP Activado