David
David

Reputation: 1770

Android sqlite insert is not inserting

i have this little gps locaton inserting code but thats not insert into the database:

db.setVersion(1);
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);

final String gps = "CREATE TABLE IF NOT EXISTS GPS_Values ("
                + "id INTEGER PRIMARY KEY AUTOINCREMENT, Latitude float(10, 6), Longitude float(10, 6), cur_timestamp TIMESTAMP);";
db.execSQL(gps);

and the inserting lines:

// GPS
public class MyLocationListener implements LocationListener {
    public void onLocationChanged(Location loc) {
        loc.getLatitude();
        loc.getLongitude();

        ContentValues gps_values = new ContentValues();

        gps_values.put("Latitude", loc.getLatitude());
        gps_values.put("Longitutde", loc.getLongitude());


        try {
            db.beginTransaction();
            db.insert("GPS_Values", null, gps_values);
            db.setTransactionSuccessful();
        } finally {
            db.endTransaction();
        }

        String Text = "My current location is: " + "Latitude = "
                + loc.getLatitude() + "\nLongitude = " + loc.getLongitude();

        Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT)
                .show();

    }

    public void onProviderDisabled(String provider) {
        Toast.makeText(getApplicationContext(), "Gps Disabled",
                Toast.LENGTH_SHORT).show();
    }

    public void onProviderEnabled(String provider) {
        Toast.makeText(getApplicationContext(), "Gps Enabled",
                Toast.LENGTH_SHORT).show();
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {
    }

}// gps vége

when tring to get location everithing works fine but the inserting.

i have similar code with tha accelerator and that works fine.

pls help me

Upvotes: 6

Views: 13196

Answers (3)

Alix Bloom
Alix Bloom

Reputation: 217

You try to insert in "Longitutde" but you've create "Longitude" field

Upvotes: 0

Graham Borland
Graham Borland

Reputation: 60711

There a typo in the column you're inserting to:

    gps_values.put("Longitutde", loc.getLongitude());

Should be

    gps_values.put("Longitude", loc.getLongitude());

The insert() call returns -1 if an error occurred, but you aren't checking the return value. It's generally easier to use insertOrThrow instead, which throws an exception on error.

Upvotes: 9

Alexander
Alexander

Reputation: 48272

Try using insertOrThrow instead, - it will throw an exception if your db constraints don't allow a specific insertion, then you will be able to figure out.

Upvotes: 16

Related Questions