Comment insérer double et float valeurs de sqlite?
Qui suit est ma db code de création.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" +
_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
TIME + " INTEGER, " +
LONGI + " TEXT, "+
LATI + " TEXT, "+
SPEED + " TEXT, "+
ACCU + " TEXT);");
}
Alors va ici l'ajout d'un point de données de code
private void addGeoDataEntry(double logi, double lati, float speed, float accu) {
SQLiteDatabase db = gpsDataHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(TIME, System.currentTimeMillis());
values.put(LONGI, logi+"");
values.put(LATI, lati+"");
values.put(SPEED, speed+"");
values.put(ACCU, accu+"");
db.insertOrThrow(TABLE_NAME, null, values);
}
quand je l'appelle
addGeoDataEntry(10.0,11.0,3.0f,1.1f);
il donne l'erreur suivante. Comment résoudre ce problème?
03-14 13:57:26.910: I/Database(27910): sqlite returned: error code = 1, msg = near "1.0": syntax error
Vous devez vous connecter pour publier un commentaire.
REAL
est ce que vous cherchez. La Documentation des types de données SQLitesyntax error
? Je voudrais voir l'intégralité du message d'erreur et leSQL prend en charge les types d'affinités:
Si le type déclaré pour une colonne contient l'un de ces "RÉEL", "FLOAT", ou "DOUBLE", puis la colonne a 'RÉEL' affinité.
Je pense que vous devriez donner les types de données de la colonne comme NUMÉRIQUE ou DOUBLE ou FLOAT ou RÉEL
Lire http://sqlite.org/datatype3.html pour plus d'infos.
en fait je pense que ton code est très bien.. vous pouvez enregistrer ces valeurs comme des chaînes de caractères (TEXTE), tout comme vous l'avez fait.. (si vous voulez)
et vous avez probablement l'erreur pour le Système.currentTimeMillis() qui pourrait être trop grand pour ENTIER
System.currentTimeMillis()
renvoie unelong
. Donc oui, dépasseint
taille.INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.
long
s'inscrit dans le sqlite typeINTEGER
, qui peut être jusqu'à 8 octets.gr8
. Nous sommes des professionnels, droit?