title: Helper.getWritableDatabase() function
body: <p>I'm working on my first SQLite database app and because I'm stuck for a long time I decided to ask about it online.</p>
  
  <p>I have trouble with running the application I that have written, because of the function: <code>Helper.getWritableDatabase();</code></p>
  
  <p>without it, it runs fine.</p>
  
  <p>My database indeed created when I take a look at the Data/Data/projects source at the DDMS</p>
  
  <p>Code:</p>
  
  <p><strong>The Symptom class:</strong></p>
  
  <pre><code>public class Symptom {
  
  long symptomId;
  String name;
  long details;
  
  
  public Symptom(long symptomId, String name, long details) {
      super();
      this.symptomId = symptomId;
      this.name = name;
      this.details = details;
  }
  
  public Symptom() {}
  
  public String getName() {
      return name;
  }
  
  public void setName(String name) {
      this.name = name;
  }
  
  public long getDetails() {
      return details;
  }
  
  public void setDetails(long details) {
      this.details = details;
  }
  
  public long getSymptomId() {
      return symptomId;
  }
  
  public void setSymptomId(long symptomId) {
      this.symptomId = symptomId;
  };
  </code></pre>
  
  <p>}</p>
  
  <p><strong>The SymptomOpenHelper class:</strong></p>
  
  <pre><code>import android.content.Context;
  import android.database.sqlite.SQLiteDatabase;
  import android.database.sqlite.SQLiteOpenHelper;
  import android.util.Log;
  
  public class SymptomOpenHelper extends SQLiteOpenHelper {
  
  
  public static final String DATABASENAME="Symptom.db";
  public static final String TABLE_SYMPTOM="tblSymptom";
  public static final int DATABASEVERSION = 1;
  
  public static final String COLUMN_ID="symptomId";
  public static final String COLUMN_NAME="name";
  public static final String COLUMN_DETAILS="details";
  
  private static final String CREATE_TABLE_SYMPTOM="CREATE TABLE IF NOT EXIST" + TABLE_SYMPTOM + "(" + COLUMN_ID + "INTEGER PRIMART KEY AUTOINCREMENT," + COLUMN_NAME +"VARCHAR," +COLUMN_DETAILS +"VARCHAR" + ");";
  
  
  public SymptomOpenHelper(Context context)
  {
      super(context, DATABASENAME, null, DATABASEVERSION);
  
  }
  
  
  @Override
  public void onCreate(SQLiteDatabase db) {
      db.execSQL(CREATE_TABLE_SYMPTOM);
      Log.i("data" ,"Table sypmpton created");
  }
  
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int NewVersion) {
      db.execSQL("DROP TABLE IF NOT EXIST" + TABLE_SYMPTOM);
      onCreate(db);
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p><strong>The MainActivity code:</strong></p>
  
  <pre><code>    import android.os.Bundle;
      import android.app.Activity;
      import android.database.sqlite.SQLiteDatabase;
      import android.view.Menu;
  
      public class MainActivity extends Activity {
  
  SymptomOpenHelper sHelper;
  SQLiteDatabase database;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
  
      sHelper =new SymptomOpenHelper(this);
              // The trouble-maker line:
  
      database=sHelper.getWritableDatabase(); 
  
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>According to the android simulator: "Unfortunately, The_app_name has stopped"</p>
  
  <p><strong>The LogCat:</strong></p>
  
  <blockquote>
    <p>12-31 19:55:37.744: E/Trace(924): error opening trace file: No such file or directory (2)
    12-31 19:55:38.964: E/SQLiteLog(924): (1) near "AUTOINCREMENT": syntax error
    12-31 19:55:38.994: D/AndroidRuntime(924): Shutting down VM
    12-31 19:55:38.994: W/dalvikvm(924): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
    12-31 19:55:39.124: E/AndroidRuntime(924): FATAL EXCEPTION: main
    12-31 19:55:39.124: E/AndroidRuntime(924): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.idiagnostician1/com.example.idiagnostician1.MainActivity}: android.database.sqlite.SQLiteException: near "AUTOINCREMENT": syntax error (code 1): , while compiling: CREATE TABLE IF NOT EXISTS tblSymptom (symptomId INTEGER PRIMART KEY AUTOINCREMENT,name VARCHAR, details VARCHAR);
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.os.Handler.dispatchMessage(Handler.java:99)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.os.Looper.loop(Looper.java:137)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.app.ActivityThread.main(ActivityThread.java:5041)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at java.lang.reflect.Method.invokeNative(Native Method)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at java.lang.reflect.Method.invoke(Method.java:511)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at dalvik.system.NativeStart.main(Native Method)
    12-31 19:55:39.124: E/AndroidRuntime(924): Caused by: android.database.sqlite.SQLiteException: near "AUTOINCREMENT": syntax error (code 1): , while compiling: CREATE TABLE IF NOT EXISTS tblSymptom (symptomId INTEGER PRIMART KEY AUTOINCREMENT,name VARCHAR, details VARCHAR);
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at com.example.idiagnostician1.SymptomOpenHelper.onCreate(SymptomOpenHelper.java:30)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at com.example.idiagnostician1.MainActivity.onCreate(MainActivity.java:20)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.app.Activity.performCreate(Activity.java:5104)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    12-31 19:55:39.124: E/AndroidRuntime(924):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    12-31 19:55:39.124: E/AndroidRuntime(924):  ... 11 more
    12-31 19:55:44.334: E/Trace(986): error opening trace file: No such file or directory (2)
    12-31 19:55:44.624: E/SQLiteLog(986): (1) near "AUTOINCREMENT": syntax error
    12-31 19:55:44.624: D/AndroidRuntime(986): Shutting down VM
    12-31 19:55:44.634: W/dalvikvm(986): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
    12-31 19:55:44.653: E/AndroidRuntime(986): FATAL EXCEPTION: main
    12-31 19:55:44.653: E/AndroidRuntime(986): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.idiagnostician1/com.example.idiagnostician1.MainActivity}: android.database.sqlite.SQLiteException: near "AUTOINCREMENT": syntax error (code 1): , while compiling: CREATE TABLE IF NOT EXISTS tblSymptom (symptomId INTEGER PRIMART KEY AUTOINCREMENT,name VARCHAR, details VARCHAR);
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.os.Handler.dispatchMessage(Handler.java:99)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.os.Looper.loop(Looper.java:137)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.app.ActivityThread.main(ActivityThread.java:5041)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at java.lang.reflect.Method.invokeNative(Native Method)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at java.lang.reflect.Method.invoke(Method.java:511)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at dalvik.system.NativeStart.main(Native Method)
    12-31 19:55:44.653: E/AndroidRuntime(986): Caused by: android.database.sqlite.SQLiteException: near "AUTOINCREMENT": syntax error (code 1): , while compiling: CREATE TABLE IF NOT EXISTS tblSymptom (symptomId INTEGER PRIMART KEY AUTOINCREMENT,name VARCHAR, details VARCHAR);
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at com.example.idiagnostician1.SymptomOpenHelper.onCreate(SymptomOpenHelper.java:30)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at com.example.idiagnostician1.MainActivity.onCreate(MainActivity.java:20)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.app.Activity.performCreate(Activity.java:5104)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    12-31 19:55:44.653: E/AndroidRuntime(986):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    12-31 19:55:44.653: E/AndroidRuntime(986):  ... 11 more</p>
  </blockquote>