sqlite avec des valeurs booléennes?
je suis un peu de texte et des valeurs booléennes à partir du serveur j'ai besoin de les enregistrer dans la base de données.
c'est ma table . J'ai défini des valeurs booléennes, en tant qu'ENTIER couse dans sqlite, il n'y a pas de booléen.
db.execSQL("CREATE TABLE outcomesStore(id INTEGER PRIMARY KEY AUTOINCREMENT , allowgo INTEGER,cod TEXT,youdidComments INTEGER, youwent INTEGER,ByDate INTEGER ," +
"OnCompletion INTEGER,yourtext TEXT , yourGroup TEXT, yourConsultation INTEGER )");
et je suis getitng ces valeurs à partir du serveur.
Store[] Storedata = Configuration.getStore();
booleanvalues[0] = Store[0].isallowgo ();
et de l'insertion comme ce
helperdatabase = new DatabaseHelperInurseBusiness(this);
db = helperdatabase.getWritableDatabase();
ContentValues insertOutcomes = new ContentValues();
insertOutcomes.put(helperdatabase.ALLOW_GO,booleanvalues[0]);
db.insert("outcomesStore", helperdatabase.ALLOW_GO,insertOutcomes);
Sa ne marche pas même en ne donnant aucune erreur.
Convertir le
booleanvalues[0]
numérique avant l'insertion. essayez ceci: insertOutcomes.mettre(helperdatabase.ALLOW_GO,1);OriginalL'auteur Unknown | 2013-01-23
Vous devez vous connecter pour publier un commentaire.
En fait, SQLite ne supporte
BOOLEAN
type, mais peut-être pas exactement de la manière que vous attendez.Vous pouvez créer des colonnes de
BOOLEAN
type en utilisant la normeCREATE TABLE
, puis le remplir:Ensuite, vous pouvez récupérer vos données, et l'utilisation standard
BOOLEAN
logique en faisant de la sorte:ou à l'aide de différents
BOOLEAN
expressions:et ainsi de suite. (Obligatoire SQLFiddle)
En d'autres termes, tout fonctionne très bien, le seul hic, c'est que vous devez utiliser
0
au lieu deFALSE
et1
au lieu deTRUE
(cela consiste à définir les valeurs à partir d'un logiciel client). Notez que c'est un peu comme d'autres moteurs SQL (Par exemple, PostgreSQL supporte l'aide de'0'
/'1'
,'f'
/'t'
etfalse
/true
pour la miseFALSE
/TRUE
valeurs par le logiciel client).Aussi, si vous utilisez cette
BOOLEAN
champ dans le contexte numérique (comme l'ajout ou de se multiplier) il va se comporter comme le nombre 0 ou 1, alors que dans d'autres moteurs SQL ajoutBOOLEAN
etINTEGER
peut provoquer une exception en raison de l'incompatibilité des types.OriginalL'auteur mvp
j'ai eu la solution.
Grâce Yaqub Ahamad.
OriginalL'auteur Unknown