Note that there are some explanatory texts on larger screens.

plurals
  1. POsqlite error inserting data in table
    primarykey
    data
    text
    <p>I'm inserting data in table, when db is created first time the data is inserted successfully, but when app is closed and re-launched it gives me error:</p> <pre><code>Error inserting id=1 new=1 title=sample page previous=0 color=0 next=2 state=1 header= ""; android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed at android.database.sqlite.SQLiteStatement.native_execute(Native Method) at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61) at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1582) at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426) at com.testjsonparse.MainActivity.parseAndIsertData(MainActivity.java:108) at java.lang.reflect.Method.invokeNative(Native Method) </code></pre> <p>This is the code I'm using in my <code>MainActivity.java</code></p> <pre><code>@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dataSource = new ContentsDataSource(this); dataSource.open(); parseAndIsertData(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); dataSource.open(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i(MY_TAGT, "OnPuse() called"); dataSource.close(); } private void parseAndIsertData() { // Creating JSON Parser instance MyJSONParser jParser = new MyJSONParser(); contentDataObject = new ContentDataObject(); // getting JSON string from URL JSONObject json = jParser.getJSONFromUrl(BASE_URL); try { // Getting Array of Contents jsonArray = json.getJSONArray(MOBILE_CONTENT); // looping through All Contents for(int i = 0; i &lt; jsonArray.length(); i++){ contentDataObject.setId(jsonArray.getJSONObject(i).getInt(MOBILE_CONTENT_ID)); contentDataObject.setTitle(jsonArray.getJSONObject(i).getString(MOBILE_CONTENT_TITLE)); contentDataObject.setFulltext(jsonArray.getJSONObject(i).getString(MOBILE_CONTENT_FULLTEXT)); contentDataObject.setState(jsonArray.getJSONObject(i).getInt(MOBILE_CONTENT_STATE)); contentDataObject.setNewValue(jsonArray.getJSONObject(i).getInt(MOBILE_CONTENT_NEW)); contentDataObject.setHeader(jsonArray.getJSONObject(i).getString(MOBILE_CONTENT_HEADER)); contentDataObject.setColor(jsonArray.getJSONObject(i).getInt(MOBILE_CONTENT_COLOR)); contentDataObject.setNext(jsonArray.getJSONObject(i).getString(MOBILE_CONTENT_NEXT)); contentDataObject.setPrevious(jsonArray.getJSONObject(i).getString(MOBILE_CONTENT_PREVIOUS)); contentDataObject = dataSource.create(contentDataObject); Log.i(MY_TAGT, "Data Inserted " + contentDataObject.getId() + " Times"); } //textView.setText(builder); } catch (JSONException e) { e.printStackTrace(); } } </code></pre> <p><code>EDIT</code> Code for Inserting data into <code>db</code> is :</p> <pre><code>// Insert into Database public ContentDataObject create( ContentDataObject dataObject) { // Content class ContentValues values = new ContentValues(); values.put(DBHelper.MOBILE_CONTENT_ID, dataObject.getId()); values.put(DBHelper.MOBILE_CONTENT_TITLE, dataObject.getTitle()); values.put(DBHelper.MOBILE_CONTENT_FULLTEXT, dataObject.getFulltext()); values.put(DBHelper.MOBILE_CONTENT_STATE, dataObject.getState()); values.put(DBHelper.MOBILE_CONTENT_NEW, dataObject.getNewValue()); values.put(DBHelper.MOBILE_CONTENT_HEADER, dataObject.getHeader()); values.put(DBHelper.MOBILE_CONTENT_COLOR, dataObject.getColor()); values.put(DBHelper.MOBILE_CONTENT_NEXT, dataObject.getNext()); values.put(DBHelper.MOBILE_CONTENT_PREVIOUS, dataObject.getPrevious()); long insetId = database.insert(DBHelper.MOBILE_CONTENT_TABLE_NAME, null, values, SQLiteDatabase.CONFLICT_IGNORE);// Here it gives me error for SQLiteDatabase.CONFLICT_IGNORE dataObject.setId(insetId); return dataObject; } </code></pre> <p><code>EDIT</code> Create Table Query is :</p> <pre><code>private static final String MOBILE_CONTENT_DB_CREATE = "CREATE TABLE " + MOBILE_CONTENT_TABLE_NAME + "( " + MOBILE_CONTENT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + MOBILE_CONTENT_TITLE + " TEXT, " + MOBILE_CONTENT_FULLTEXT + " TEXT , " + MOBILE_CONTENT_STATE + " INTEGER , " + MOBILE_CONTENT_NEW + " INTEGER, " + MOBILE_CONTENT_HEADER + " TEXT , " + MOBILE_CONTENT_COLOR + " INTEGER , " + MOBILE_CONTENT_NEXT + " TEXT , " + MOBILE_CONTENT_PREVIOUS + " TEXT );"; </code></pre> <p>now I'm unable to find why is this error occurring. Thanks</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload