String CREATE_TRAIN_DATABASE = "CREATE TABLE IF NOT EXISTS "
+ DATABASE_TRAIN_FEATURES
+ "("
+ KEY_ROW_ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_USER_ID
+ " TEXT NOT NULL,"
+ KEY_COL_MEANX
+ " REAL NOT NULL,"
+ KEY_COL_MEANY
+ " REAL NOT NULL,"
+ KEY_COL_MEANZ
+ " REAL NOT NULL,"
+ KEY_COL_VARIANCEX
+ " REAL NOT NULL,"
+ KEY_COL_VARIANCEY
+ " REAL NOT NULL,"
+ KEY_COL_VARIANCEZ
+ " REAL NOT NULL,"
+ KEY_COL_CORRX
+ " REAL NOT NULL,"
+ KEY_COL_CORRY
+ " REAL NOT NULL,"
+ KEY_COL_CORRZ
+ " REAL NOT NULL,"
+ DATABASE_COL_Activity + " TEXT NOT NULL);";
На друго място добавям данни:
ContentValues values = new ContentValues();
String [] cols = setupCols(table);
values.put(cols[0], email);
int i = 1;
for (Float reading : features) {
values.put(cols[i], reading);
++i;
}
private String[] setupCols(String table) {
if (DatabaseHelper.DATABASE_RAW_DATA.compareTo(table) != 0) {
String[] columns = { DatabaseHelper.KEY_USER_ID,
DatabaseHelper.KEY_COL_MEANX, DatabaseHelper.KEY_COL_MEANY,
DatabaseHelper.KEY_COL_MEANZ,
DatabaseHelper.KEY_COL_VARIANCEX,
DatabaseHelper.KEY_COL_VARIANCEY,
DatabaseHelper.KEY_COL_VARIANCEZ,
DatabaseHelper.KEY_COL_CORRX, DatabaseHelper.KEY_COL_CORRY,
DatabaseHelper.KEY_COL_CORRZ,
DatabaseHelper.DATABASE_COL_Activity };
return columns;
}
}
Всичко изглежда наред ... по отношение на данните. Не виждам никакви нули и самите данни изглеждат разумни за моето приложение. Но продължавам да получавам грешки при нарушаване на ограниченията. Не мога да разбера защо. Може ли да е частта за автоматично увеличаване? Тоест, ако напиша някои данни и след това по-късно се опитам да пренапиша някои данни (да речем, след като рестартирам приложението), то ще се опита ли да добави отново данни с първичния ключ, който вече е бил използван. Например, ако добавя някои данни с първичен ключ 1, след това рестартирам приложението и се опитам да добавя отново данни, ще започне ли отново от 1?
Съобщение за грешка:
Error inserting Activity=Sitting VARIANCEY=0.0 CORRZ=0.0 VARIANCEZ=0.0 CORRY=0.0
user_id=admin CORRX=0.0 VARIANCEX=.233333332 MEANX = 617.7 MEANY=523.0 MEANZ=527.0
android.database.sqlite.SQLLiteConstraintException:error code 19:constraint failed