0

I know that there are a lot of topics on this error but I tried a lot of solutions and still I am stuck whit this error. It´s my first time playing around with SQLite, and I don´t understand what is happening wrong there.

05-26 08:34:20.369  23124-23124/com.danynuria.fmp D/ODOperations﹕ Overall Table Created
05-26 08:34:20.373  23124-23124/com.danynuria.fmp E/SQLiteLog﹕ (1) no such table: database_info
05-26 08:34:20.374  23124-23124/com.danynuria.fmp E/SQLiteDatabase﹕ Error inserting date=26 / 4 / 2015 county=Bedfordshire co2_saved=149 distance=1245 distance_type=run user_id=1
    android.database.sqlite.SQLiteException: no such table: database_info (code 1): , while compiling: INSERT INTO database_info(date,county,co2_saved,distance,distance_type,user_id) VALUES (?,?,?,?,?,?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            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.insertWithOnConflict(SQLiteDatabase.java:1469)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341)
            at com.danynuria.fmp.OverallDatabaseOperations.putInformation(OverallDatabaseOperations.java:73)
            at com.danynuria.fmp.MainActivity$1.onClick(MainActivity.java:121)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
05-26 08:34:20.374  23124-23124/com.danynuria.fmp D/ODOperations﹕ One row inserted

And my code:

package com.danynuria.fmp;

import android.app.DownloadManager;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import com.danynuria.fmp.OverallTableData.OverallTableinfo;

import java.sql.SQLException;


public class OverallDatabaseOperations extends SQLiteOpenHelper {

// Create integer that register version of database
private static final int overallDatabase_version = 1;


// Create query
public String CREATE_QUERY = "CREATE TABLE "+OverallTableinfo.OVERALL_TABLE_NAME+"( "+OverallTableinfo.USER_ID+" INTEGER, "+OverallTableinfo.DISTANCE+
        " INTEGER, "+OverallTableinfo.DISTANCE_TYPE+" TEXT, "+OverallTableinfo.COUNTY+" TEXT, "+OverallTableinfo.CO2_SAVED+
        " INTEGER, "+OverallTableinfo.DATE+" TEXT);";


// Creating the database using SQLiteOpenHelper constructor
public OverallDatabaseOperations(Context context) {

    super(context, OverallTableinfo.OVERALL_DATABASE_NAME, null, overallDatabase_version);
}


public void onCreate(SQLiteDatabase odb ){

  odb.execSQL(CREATE_QUERY);

    Log.d("ODOperations", "Overall Table Created");

}





public void onUpgrade(SQLiteDatabase arg0,int arg1, int arg2){



}


//  Create a method to insert data into database
public void putInformation(OverallDatabaseOperations dop, Integer id, Integer distance, String type, String county, Integer co2saved, String date) {

    // Create a SQLite database object
    SQLiteDatabase OSQ = dop.getWritableDatabase();

    // Create an object for content values
    ContentValues ncv = new ContentValues();

    // Passing the first column value
    ncv.put(OverallTableinfo.USER_ID, id);
    ncv.put(OverallTableinfo.DISTANCE, distance);
    ncv.put(OverallTableinfo.DISTANCE_TYPE, type);
    ncv.put(OverallTableinfo.COUNTY, county);
    ncv.put(OverallTableinfo.CO2_SAVED, co2saved);
    ncv.put(OverallTableinfo.DATE, date);

    // Inserting data into table
    OSQ.insert(OverallTableinfo.OVERALL_DATABASE_NAME, null, ncv);
    Log.d("ODOperations", "One row inserted");

}

}

And the other class:

package com.danynuria.fmp;

import android.provider.BaseColumns;


public class OverallTableData {


// Create constructor
public OverallTableData() {




}


// Create abstract class
public static abstract class OverallTableinfo implements BaseColumns {

    // Create first column in database
    public static final String USER_ID = "user_id";

    // Create second column in database
    public static final String DISTANCE = "distance";

    // Create third column in database
    public static final String DISTANCE_TYPE = "distance_type";

    // Create forth column in database
    public static final String COUNTY = "county";

    // Create fifth column in database
    public static final String CO2_SAVED = "co2_saved";

    // Create sixth column in database
    public static final String DATE = "date";


    // Define database name
    public static final String OVERALL_DATABASE_NAME = "database_info";

    // Define table name
    public static final String OVERALL_TABLE_NAME = "overall_info";


}


}

Any suggestions are highly appreciated

1
  • You are trying to use data base name as table name in insert statement. Commented May 26, 2015 at 12:58

1 Answer 1

3

you have to use OVERALL_TABLE_NAME instead of OVERALL_DATABASE_NAME in your insert:

 OSQ.insert(OverallTableinfo.OVERALL_TABLE_NAME, null, ncv);
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you, can´t believe I have been stuck for 2 days on something so stupid.

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.