1

I'm trying to create three tables for my sqlite database in android, but the tables won't create, just the database. Using viewing the DDMS, the database is created, but when I view it using SQLite Browser, no tables are created only the metadata.

Here's how I do it:

private static final String DATABASE_NAME = "fgtDB";
private static final String DATABASE_TABLE = "profiles";
private static final String DATABASE_TABLE2 = "routines";
private static final String DATABASE_TABLE3 = "UserRoutines";
private static final int DATABASE_VERSION = 3;

private static final String DATABASE_CREATE =
    "create table if not exists profiles (_id integer primary key autoincrement, "
    + "firstname VARCHAR not null, age VARCHAR not null, " 
    + "heightft VARCHAR not null, heightin VARCHAR not null, weight VARCHAR not null, duration VARCHAR not null, bmi VARCHAR not null, weightclass VARCHAR not null,);";

private static final String DATABASE_CREATE2 =
        "create table if not exists routines (_id integer primary key autoincrement, "
        + "weightclass VARCHAR not null, musclegroup VARCHAR not null, " 
        + "exercise VARCHAR not null, numberofsets VARCHAR not null, numberofrepitition VARCHAR not null, day VARCHAR not null);";

private static final String DATABASE_CREATE3 =
        "create table if not exists UserRoutines (userid integer not null, "
        + "musclegroup VARCHAR not null, day VARCHAR not null" 
        + "exercise VARCHAR not null, numberofsetsleft VARCHAR not null, numeberofrepitition VARCHAR not null, isdone VARCHAR not null);";

private final Context context; 

private DatabaseHelper DBHelper;
private SQLiteDatabase db;

public DBAdapter(Context ctx) 
{
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper 
{
    DatabaseHelper(Context context) 
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) 
    {
        try
        {
            db.execSQL(DATABASE_CREATE);
            db.execSQL(DATABASE_CREATE2);
            db.execSQL(DATABASE_CREATE3);
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
        Log.w(TAG, "Upgrading database from version " + oldVersion 
                + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS profiles");
        onCreate(db);
    }
}    

Any ideas?

1 Answer 1

3

You have a comma at the end of DATABASE_CREATE that shouldn't be there.

...  weightclass VARCHAR not null,);"

Should be

...   weightclass VARCHAR not null);"
Sign up to request clarification or add additional context in comments.

3 Comments

Wish that the logcat would say that I have a incorrect syntax there though.
@ljpv14 Maybe it doesn't throw an exception (or the type you're trying to catch).
@ljpv14 SQLException is the right exception ([see here](developer.android.com/reference/android/database/sqlite/… ). Did logcat have anything at all?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.