· 6 years ago · Mar 05, 2019, 07:16 PM
108-24 20:36:48.134: E/AndroidRuntime(351): java.lang.RuntimeException:
2Unable to start activity ComponentInfo{se.p950tes.workouttracker/se.p950tes.workouttracker.SavedActivity}:
3android.database.sqlite.SQLiteException: no such column: col_distance: ,
4while compiling: SELECT _id, col_date, col_time, col_distance, col_route FROM workout
5
6import android.content.ContentValues;
7import android.content.Context;
8import android.database.Cursor;
9import android.database.SQLException;
10import android.database.sqlite.SQLiteDatabase;
11import android.database.sqlite.SQLiteOpenHelper;
12import android.util.Log;
13
14public class DatabaseHandler
15{
16 public static final String DATABASE_NAME = "workout_tracker";
17
18 private static final String KEY_ID = "_id";
19 private static final String KEY_DATE = "col_date";
20 private static final String KEY_TIME = "col_time";
21 private static final String KEY_DISTANCE = "col_distance";
22 private static final String KEY_ROUTE = "col_route";
23
24 private static final String TABLE = "workout";
25 private static final String[] ALL_FIELDS = {KEY_ID, KEY_DATE, KEY_TIME, KEY_DISTANCE, KEY_ROUTE};
26
27 private static final int DATABASE_VERSION = 3;
28
29 private final Context context;
30 private DatabaseHelper helper;
31 private SQLiteDatabase db;
32
33 public DatabaseHandler(Context context)
34 {
35 this.context = context;
36 this.helper = new DatabaseHelper(context);
37 }
38
39 public void connect()
40 {
41 db = helper.getWritableDatabase();
42 }
43 public void disconnect()
44 {
45 db.close();
46 }
47
48 public Cursor getAll()
49 {
50 return db.query(TABLE, ALL_FIELDS, null, null, null, null, null);
51 }
52
53 private static class DatabaseHelper extends SQLiteOpenHelper
54 {
55 private static final String CREATE = "CREATE TABLE " + TABLE + "("
56 + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
57 + KEY_DATE + " INTEGER NOT NULL, "
58 + KEY_TIME + " INTEGER NOT NULL, "
59 + KEY_DISTANCE + "INTEGER NOT NULL, "
60 + KEY_ROUTE + " BLOB NOT NULL"
61 + ");";
62 DatabaseHelper(Context context)
63 {
64 super(context, DATABASE_NAME, null, DATABASE_VERSION);
65 }
66 @Override
67 public void onCreate(SQLiteDatabase db)
68 {
69 try
70 {
71 db.execSQL(CREATE);
72 }
73 catch(SQLException e)
74 {
75 e.printStackTrace();
76 }
77 }
78 @Override
79 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
80 {
81 Log.w("DBHandler", "Upgrading database from version "+oldVersion+" to "+newVersion+", which will destroy all old data");
82 db.execSQL("DROP TABLE IF EXISTS "+TABLE);
83 onCreate(db);
84 }
85 }
86}