mercredi 3 juin 2015

Getting error in Android SQlite insert syntax

06-04 02:14:47.890: V/qwerty(10273): before onCreate
06-04 02:14:47.890: E/SQLiteLog(10273): (1) near "table": syntax error
06-04 02:14:47.890: V/qwerty(10273): onCreate Error 
06-04 02:14:47.890: V/qwerty(10273): android.database.sqlite.SQLiteException: near "table": syntax error (code 1): , while compiling: CREATE TABLE table (_id INTEGER PRIMARY KEY AUTOINCREMENT, time TEXT );
06-04 02:14:47.902: E/SQLiteLog(10273): (1) near "table": syntax error
06-04 02:14:47.904: E/SQLiteDatabase(10273): Error inserting time=qwert
06-04 02:14:47.904: E/SQLiteDatabase(10273): android.database.sqlite.SQLiteException: near "table": syntax error (code 1): , while compiling: INSERT INTO table(time) VALUES (?)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at com.example.utkarsh.stopwatch.DatabaseAdapter.insertData(DatabaseAdapter.java:25)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at com.example.utkarsh.stopwatch.MainActivity.updateTime(MainActivity.java:216)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at com.example.utkarsh.stopwatch.MainActivity.stopButtonClick(MainActivity.java:192)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at com.example.utkarsh.stopwatch.MainActivity.access$100(MainActivity.java:11)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at com.example.utkarsh.stopwatch.MainActivity$2.onClick(MainActivity.java:88)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.view.View.performClick(View.java:4780)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.view.View$PerformClick.run(View.java:19866)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.os.Handler.handleCallback(Handler.java:739)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.os.Handler.dispatchMessage(Handler.java:95)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.os.Looper.loop(Looper.java:135)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at android.app.ActivityThread.main(ActivityThread.java:5254)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at java.lang.reflect.Method.invoke(Native Method)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at java.lang.reflect.Method.invoke(Method.java:372)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
06-04 02:14:47.904: E/SQLiteDatabase(10273):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

I am getting this error when i try to enter data into the database. Following is a code of DatabaseAdapter.java which contains a class DatabaseHelper which extends SQLiteOpenHelper. From MainActivity.java, I am calling insertData(String) function and it is returning me a value -1.

package com.example.utkarsh.stopwatch;

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


public class DatabaseAdapter {

DatabaseHelper helper;

public DatabaseAdapter(Context context)
{
    helper = new DatabaseHelper(context);
}

public long insertData(String time)
{
    SQLiteDatabase db = helper.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(DatabaseHelper.NAME, time );
    long id = db.insert(DatabaseHelper.TABLE_NAME , null , contentValues);
    return id;
}

static class DatabaseHelper extends SQLiteOpenHelper
{
    private static final String DATABASE_NAME = "database.db";
    private static final int DATABASE_VERSION = 1;
    private static final String TABLE_NAME = "table";
    private static final String UID = "_id";
    private static final String NAME = "time";
    private static final String DROP_TABLE = "DROP TABLE IF EXISTS " + TABLE_NAME;

    private static final String TABLE_CREATE =
                    "CREATE TABLE " + TABLE_NAME + " (" +
                    UID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                    NAME + " TEXT " +
                    ");";

    private Context context;

    public DatabaseHelper(Context context)
    {
        super(context , DATABASE_NAME , null , DATABASE_VERSION);
        this.context = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        try {
            Log.v("qwerty" , "before onCreate");
            db.execSQL(TABLE_CREATE);
            Log.v("qwerty" , "after onCreate");
        } catch (SQLException e) {
            Log.v("qwerty" , "onCreate Error \n" + e);
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        try {
            db.execSQL(DROP_TABLE);
            Log.v("qwerty" , "onUpdate");
            onCreate(db);
        } catch (SQLException e) {
            Log.v("qwerty" , "onUpdate error\n" + e);
        }
    }
}

}

I am unable to figure out what is going wrong. Please help me out. Thanks in advance.

Aucun commentaire:

Enregistrer un commentaire