0

I am Trying to Add values to a Database but I keep getting the below message. There are Two tables in the Database and both are giving me the same error message upon creation

"android.database.sqlite.SQLiteException: near "TABLEAssetstab": syntax error (code 1): , while compiling: CREATE TABLEAssetstab(Assetid TEXT NOT NULL,assetname TEXT NOT NULL,category TEXT NOT NULL,Purchasedate TEXT NOT NULL,assetstatus TEXT NOT NULL,warrenty TEXT NOT NULL);"

The Database Handeler Class

public class DBHandler extends SQLiteOpenHelper   {


// Database Name
public static final String DATABASE_NAME ="AssetDB.db";

//Database version
public static final int  Databasevr = 1;

//Custodian Table Name
public static final String TABLE_CUSTODIAN = "Custodian";
// Columbs in the Custodian Table

public static final String CUSTODIAN_ID = "CustID";
public static final String CUSTODIAN_NAME = "CustName";
public static final String CUSTODIAN_DESIGNATION = "CustDesign";
public static final String CUSTODIAN_DEPARTMENT = "CustDepart";


// Creating the Assets Table
public static final String ASSETTAB ="Assetstab";

//Columbs in the Asset Table
public static final String ASSET_ID = "Assetid";
public static final String ASSET_Name="assetname";
public static final String ASSET_Category ="category";
public static final String ASSET_PurchaseDate = "Purchasedate";
public static final String ASSET_STATUS ="assetstatus";
public static final String ASSET_Warrenty ="warrenty";


// Creating a Custodian table and storing it in CREATE_TABLE_CUSTODIAN String
private static final String CREATE_TABLE_CUSTODIAN = "CREATE TABLE " + TABLE_CUSTODIAN  + "("
        + CUSTODIAN_ID  + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"
        + CUSTODIAN_NAME +  " TEXT NOT NULL,"
        + CUSTODIAN_DESIGNATION +   " TEXT NOT NULL,"
        + CUSTODIAN_DEPARTMENT + " TEXT NOT NULL" + ");";


// Creating a Assets table and storing it in CREATE_TABLE_CUSTODIAN String
private static final String CREATE_TABLE_ASSET ="CREATE TABLE " + ASSETTAB + "("
+ ASSET_ID + " TEXT NOT NULL,"
+ ASSET_Name + " TEXT NOT NULL,"
+ ASSET_Category +" TEXT NOT NULL,"
+ ASSET_PurchaseDate + " TEXT NOT NULL,"
+ ASSET_STATUS +" TEXT NOT NULL,"
+ ASSET_Warrenty +" TEXT NOT NULL"+ ");";

public void InsertCusto(Custodians cust)
{
    // writing values to the Database
    SQLiteDatabase db_database = getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(CUSTODIAN_NAME,cust.getCust_Name());
    values.put(CUSTODIAN_DESIGNATION,cust.getCust_Design());
    values.put(CUSTODIAN_DEPARTMENT,cust.getDepartment());

    //Inserting it to the Database
    db_database.insert(TABLE_CUSTODIAN,null,values);
    db_database.close();
}
}

And the Main Class

public class AddCustodianActivity extends Activity implements OnClickListener {



public static final String TAG ="Adding Custodian";
private EditText CustNam,Design,Department;
List<Custodians> custodians = new ArrayList<Custodians>();

private Button SaveCust;

DBHandler handler;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_custodian);

    CustView();
    handler = new DBHandler(getApplicationContext());

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.add_custodian, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}


private void CustView()
{
    this.CustNam = (EditText) findViewById(R.id.Custodianname);
    this.Design = (EditText) findViewById(R.id.Design);
    this.Department = (EditText) findViewById(R.id.Department);
    this.SaveCust = (Button) findViewById(R.id.savecust);
    this.SaveCust.setOnClickListener(this);
}



public void onClick(View v)


{

    if(CustNam.getText().toString().length()== 0 && Design.getText().toString().length() == 0 && Department.getText().toString().length() == 0)
    {
       CustNam.setError("Please enter your Firs tName");
       Design.setError("Please Enter The users Designation");
       Department.setError("Please Enter the users Deprtmenmt");
    }
    else
    {
        Custodians custodians1 = new Custodians(handler.getCustodiancount(),String.valueOf(CustNam.getText()),String.valueOf(Design.getText()),String.valueOf(Department.getText()));

        handler.InsertCusto(custodians1);
        custodians.add(custodians1);

        //adding to the list//custodians.add( new Custodians(0,CustNam.getText().toString(),Design.getText().toString(),Department.getText().toString()));

        Toast.makeText(getApplicationContext(), CustNam.getText().toString() +"The Values are added",Toast.LENGTH_LONG).show();

    }


}}

The Logcat

05-20 18:02:12.126  10484-10484/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority [0], There is no sepolicy file.
05-20 18:02:12.126  10484-10484/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority [1], There is no sepolicy version file.
05-20 18:02:12.126  10484-10484/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority , priority version is VE=SEPF_GT-I9500_4.4.2_0024
05-20 18:02:12.126  10484-10484/com.example.nfcams I/SELinux﹕ selinux_android_seapp_context_reload: seapp_contexts file is loaded from /seapp_contexts
05-20 18:02:12.126  10484-10484/com.example.nfcams E/dalvikvm﹕ >>>>> Normal User
05-20 18:02:12.126  10484-10484/com.example.nfcams E/dalvikvm﹕ >>>>> com.example.nfcams [ userId:0 | appId:10266 ]
05-20 18:02:12.131  10484-10484/com.example.nfcams D/dalvikvm﹕ Late-enabling CheckJNI
05-20 18:02:12.251  10484-10484/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:02:12.251  10484-10484/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:02:12.366  10484-10484/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 55K, 9% free 16966K/18560K, paused 15ms, total 16ms
05-20 18:02:12.431  10484-10484/com.example.nfcams I/dalvikvm-heap﹕ Grow heap (frag case) to 39.163MB for 22118416-byte allocation
05-20 18:02:12.441  10484-10493/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 1K, 4% free 38565K/40164K, paused 11ms, total 11ms
05-20 18:02:12.561  10484-10484/com.example.nfcams D/OpenGLRenderer﹕ Enabling debug mode 0
05-20 18:02:13.596  10484-10484/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:02:13.596  10484-10484/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:02:19.981  10484-10484/com.example.nfcams E/SQLiteLog﹕ (1) near "TABLECustodian": syntax error
05-20 18:02:19.981  10484-10484/com.example.nfcams D/AndroidRuntime﹕ Shutting down VM
05-20 18:02:19.981  10484-10484/com.example.nfcams W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4186ec08)
05-20 18:02:19.986  10484-10484/com.example.nfcams E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.nfcams, PID: 10484
    android.database.sqlite.SQLiteException: near "TABLECustodian": syntax error (code 1): , while compiling: CREATE TABLECustodian(CustID  INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,CustName TEXT NOT NULL,CustDesign TEXT NOT NULL,CustDepart TEXT NOT NULL);
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1113)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:690)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1788)
            at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1719)
            at com.example.nfcams.DBHandler.onCreate(DBHandler.java:75)
            at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
            at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
            at com.example.nfcams.DBHandler.getCustodiancount(DBHandler.java:142)
            at com.example.nfcams.AddCustodianActivity.onClick(AddCustodianActivity.java:89)
            at android.view.View.performClick(View.java:4633)
            at android.view.View$PerformClick.run(View.java:19330)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5356)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
            at dalvik.system.NativeStart.main(Native Method)
05-20 18:03:18.091  10484-10484/com.example.nfcams I/Process﹕ Sending signal. PID: 10484 SIG: 9
05-20 18:03:18.416  10587-10587/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:03:18.416  10587-10587/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:03:18.586  10587-10587/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 58K, 9% free 16966K/18564K, paused 14ms, total 14ms
05-20 18:03:18.621  10587-10587/com.example.nfcams I/dalvikvm-heap﹕ Grow heap (frag case) to 39.163MB for 22118416-byte allocation
05-20 18:03:18.631  10587-10596/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 1K, 4% free 38565K/40168K, paused 13ms, total 13ms
05-20 18:03:18.746  10587-10587/com.example.nfcams D/OpenGLRenderer﹕ Enabling debug mode 0
05-20 18:03:19.621  10587-10587/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:03:19.621  10587-10587/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:03:20.061  10587-10587/com.example.nfcams W/ViewRootImpl﹕ Dropping event due to no window focus
05-20 18:03:20.061  10587-10587/com.example.nfcams W/ViewRootImpl﹕ Dropping event due to no window focus
05-20 18:03:20.061  10587-10587/com.example.nfcams W/ViewRootImpl﹕ Dropping event due to no window focus
05-20 18:03:20.061  10587-10587/com.example.nfcams W/ViewRootImpl﹕ Dropping event due to no window focus
05-20 18:03:20.061  10587-10587/com.example.nfcams W/ViewRootImpl﹕ Dropping event due to no window focus
05-20 18:03:20.061  10587-10587/com.example.nfcams W/ViewRootImpl﹕ Dropping event due to no window focus
05-20 18:03:20.061  10587-10587/com.example.nfcams W/ViewRootImpl﹕ Dropping event due to no window focus
05-20 18:14:36.886  13343-13343/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority [0], There is no sepolicy file.
05-20 18:14:36.886  13343-13343/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority [1], There is no sepolicy version file.
05-20 18:14:36.886  13343-13343/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority , priority version is VE=SEPF_GT-I9500_4.4.2_0024
05-20 18:14:36.886  13343-13343/com.example.nfcams I/SELinux﹕ selinux_android_seapp_context_reload: seapp_contexts file is loaded from /seapp_contexts
05-20 18:14:36.891  13343-13343/com.example.nfcams E/dalvikvm﹕ >>>>> Normal User
05-20 18:14:36.891  13343-13343/com.example.nfcams E/dalvikvm﹕ >>>>> com.example.nfcams [ userId:0 | appId:10266 ]
05-20 18:14:36.891  13343-13343/com.example.nfcams D/dalvikvm﹕ Late-enabling CheckJNI
05-20 18:14:36.976  13343-13343/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:14:36.981  13343-13343/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:14:37.136  13343-13343/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 84K, 9% free 16966K/18592K, paused 21ms, total 21ms
05-20 18:14:37.181  13343-13343/com.example.nfcams I/dalvikvm-heap﹕ Grow heap (frag case) to 39.163MB for 22118416-byte allocation
05-20 18:14:37.191  13343-13352/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 1K, 5% free 38564K/40196K, paused 14ms, total 14ms
05-20 18:14:37.326  13343-13343/com.example.nfcams D/OpenGLRenderer﹕ Enabling debug mode 0
05-20 18:15:36.376  13484-13484/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority [0], There is no sepolicy file.
05-20 18:15:36.376  13484-13484/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority [1], There is no sepolicy version file.
05-20 18:15:36.376  13484-13484/com.example.nfcams I/SELinux﹕ Function: selinux_android_load_priority , priority version is VE=SEPF_GT-I9500_4.4.2_0024
05-20 18:15:36.376  13484-13484/com.example.nfcams I/SELinux﹕ selinux_android_seapp_context_reload: seapp_contexts file is loaded from /seapp_contexts
05-20 18:15:36.376  13484-13484/com.example.nfcams E/dalvikvm﹕ >>>>> Normal User
05-20 18:15:36.376  13484-13484/com.example.nfcams E/dalvikvm﹕ >>>>> com.example.nfcams [ userId:0 | appId:10266 ]
05-20 18:15:36.381  13484-13484/com.example.nfcams D/dalvikvm﹕ Late-enabling CheckJNI
05-20 18:15:36.481  13484-13484/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:15:36.481  13484-13484/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:15:36.636  13484-13484/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 69K, 9% free 16966K/18576K, paused 16ms, total 16ms
05-20 18:15:36.686  13484-13484/com.example.nfcams I/dalvikvm-heap﹕ Grow heap (frag case) to 39.163MB for 22118416-byte allocation
05-20 18:15:36.706  13484-13493/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 5% free 38565K/40180K, paused 17ms, total 17ms
05-20 18:15:36.946  13484-13484/com.example.nfcams D/OpenGLRenderer﹕ Enabling debug mode 0
05-20 18:16:13.856  14437-14437/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:16:13.856  14437-14437/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:16:13.981  14437-14437/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 61K, 9% free 16966K/18568K, paused 15ms, total 15ms
05-20 18:16:14.026  14437-14437/com.example.nfcams I/dalvikvm-heap﹕ Grow heap (frag case) to 39.163MB for 22118416-byte allocation
05-20 18:16:14.036  14437-14446/com.example.nfcams D/dalvikvm﹕ GC_FOR_ALLOC freed 1K, 5% free 38564K/40172K, paused 14ms, total 14ms
05-20 18:16:14.176  14437-14437/com.example.nfcams D/OpenGLRenderer﹕ Enabling debug mode 0
05-20 18:16:45.761  14437-14437/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:16:45.766  14437-14437/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:16:50.656  14437-14437/com.example.nfcams W/ApplicationPackageManager﹕ getCSCPackageItemText()
05-20 18:16:50.656  14437-14437/com.example.nfcams I/PersonaManager﹕ getPersonaService() name persona_policy
05-20 18:16:57.811  14437-14437/com.example.nfcams E/SQLiteLog﹕ (1) near "TABLEAssetstab": syntax error
05-20 18:16:57.816  14437-14437/com.example.nfcams D/AndroidRuntime﹕ Shutting down VM
05-20 18:16:57.816  14437-14437/com.example.nfcams W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4186ec08)
05-20 18:16:57.826  14437-14437/com.example.nfcams E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.nfcams, PID: 14437
    android.database.sqlite.SQLiteException: near "TABLEAssetstab": syntax error (code 1): , while compiling: CREATE TABLEAssetstab(Assetid TEXT NOT NULL,assetname TEXT NOT NULL,category TEXT NOT NULL,Purchasedate TEXT NOT NULL,assetstatus TEXT NOT NULL,warrenty TEXT NOT NULL);
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1113)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:690)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1788)
            at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1719)
            at com.example.nfcams.DBHandler.onCreate(DBHandler.java:76)
            at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
            at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
            at com.example.nfcams.DBHandler.getCustodiancount(DBHandler.java:142)
            at com.example.nfcams.AddCustodianActivity.onClick(AddCustodianActivity.java:89)
            at android.view.View.performClick(View.java:4633)
            at android.view.View$PerformClick.run(View.java:19330)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5356)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
            at dalvik.system.NativeStart.main(Native Method)
2
  • 1
    TABLECustodian looks like no space although your code shows it Commented May 20, 2015 at 14:59
  • Seems like the compiler is omitting a space between TABLE and Custodian, though the code seems correct Commented May 20, 2015 at 15:00

1 Answer 1

1

Change it to this.

private static final String CREATE_TABLE_CUSTODIAN = "CREATE TABLE " + TABLE_CUSTODIAN  + " ("
    + CUSTODIAN_ID  + " INTEGER PRIMARY KEY,"
    + CUSTODIAN_NAME +  " TEXT NOT NULL,"
    + CUSTODIAN_DESIGNATION +   " TEXT NOT NULL,"
    + CUSTODIAN_DEPARTMENT + " TEXT NOT NULL);";

How my db is created

public static final String DATABASE_TABLE_ALL = "ALL_TABLE";
public static final String KEY_ROWID = "_id";
public static final String APP_ID = "app_id";
public static final String APP_NAME = "app_name";
public static final String APP_IMAGE_NAME = "app_image_name";
public static final String APP_DESCRIPTION = "app_description";
public static final String IOS_LOCAL_LINK = "app_ios_local_link";
public static final String IOS_STORE_LINK = "app_ios_store_link";
public static final String IOS_STORE_ID = "app_ios_store_id";
public static final String ANDROID_LOCAL_LINK = "app_android_local_link";
public static final String ANDROID_STORE_LINK = "app_android_store_link";

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + DATABASE_TABLE_ALL + " ("
                + KEY_ROWID + " INTEGER PRIMARY KEY, " + APP_ID
                + " TEXT NOT NULL, " + APP_NAME + " TEXT NOT NULL, "
                + APP_IMAGE_NAME + " TEXT NOT NULL, "
                + APP_DESCRIPTION + " TEXT NOT NULL, "
                + IOS_LOCAL_LINK + " TEXT NOT NULL, "
                + IOS_STORE_LINK + " TEXT NOT NULL, " + IOS_STORE_ID
                + " TEXT NOT NULL, " + ANDROID_LOCAL_LINK
                + " TEXT NOT NULL, " + ANDROID_STORE_LINK
                + " TEXT NOT NULL);");
    }
Sign up to request clarification or add additional context in comments.

2 Comments

Hi jasz i did try the changes you had mentioned but it still did not work. Since you mentioned that there isn't a space between custodian and create table. what i did was I placed a space in the String TABLE_CUSTODIAN as mentioned below. But do you know why this is happening. I am Using android Studio. public static final String TABLE_CUSTODIAN = " Custodian";
@NikhiRcop hi I'm not sure why yours is being weird like that. We must be missing something. Just edited this answer showing what I use when I create my table. Maybe you can spot something I missed.

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.