2016-03-18 7 views
0

私はユーザーデータを格納するためにsqliteデータベースを使用するアプリケーションに取り組んでいます。書き込み可能なデータベースを取得しようとすると、私はlogcatで次のエラーが発生します。 enter image description hereandroid sqliteエラーコードを解決する方法2

私はこの問題のために検索し、これらのリンクが見つかりました:

E/SQLiteLog﹕ (10) Failed to do file read, got: 0, amt: 100, last Errno: 2

http://www.geekub.com/4367/0-amt-100-last-errno-2-e-sqlitelog-10-failed-to-do-file-read

をしかし、何の解決策を見つけていません。 許可またはコンテキストに関して問題はありません。 しかし、クエリの実行は成功しています。 sqliteログのすぐ下の行は、テーブルの作成に成功したときにsqliteOpenHelperクラスによって出力されます。

どうすればこの問題を解決できますか?

package classmanagement.management.college.com.classmanagementapp.model; 

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

/** 
* Created by RaazDk on 12/20/2015. 
*/ 
public class InAppCacheManager extends SQLiteOpenHelper { 


    private static final String DATABASE_NAME = "class_management_db"; 
    private static final int DB_VERSION = 1; 
    private static final String SPACE = " "; 
    private static final String COMMA = ","; 



    /** 
    * Routine table and fields 
    */ 
    private static final String TABLE_ROUTINE ="Tbl_routine"; 
    private static final String COL_SUBJECT_NAME = "col_sub"; 
    private static final String COL_TEACHER_NAME= "col_teacher"; 
    private static final String COL_START_TIME = "col_start_time"; 
    private static final String COL_END_TIME = "col_end_time"; 
    private static final String COL_DAY_INDEX ="col_day_index"; 
    /** 
    * Comments table and fields 
    */ 
    private static final String TABLE_COMMNETS = "Tbl_comments"; 
    private static final String COL_COMMENTS= "col_commnets"; 
    private static final String COL_COMMENTOR_REF ="col_commentor"; 

    /** 
    * 
    * Friend table and fields 
    */ 
    private static final String TABLE_FRIENDS = "Tbl_Friends"; 
    private static final String COL_FRIEND_NAME = "col_friend_name"; 
    private static final String COL_FRIEND_ID = "col_id"; 
    private static final String COL_GROUP_NAME = "col_grp_name"; 
    private static final String COL_CLASS_NAME = "col_class_name"; 
    private static final String COL_SEMESTER_NAME = "col_semester_name"; 
    private static final String COL_E_MAIL = "col_friend_email"; 

    /** 
    * 
    * College Event table and fields 
    * 
    * @param context 
    */ 

    private static final String TABLE_EVENTS = "tbl_events"; 
    private static final String COL_EVENT_ID = "col_event_id"; 
    private static final String COL_EVENT_TITLE = "col_event_title"; 

    /** 
    * Record Version table and Fields 
    */ 

    private static final String TABLE_RECORD_VERSION = "tbl_rec_version"; 
    private static final String COL_LAST_FRIEND_ID = "col_last_friend_id"; 
    private static final String COL_LAST_EVENT_ID ="col_last_event_id"; 
    private static final String COL_LAST_ROUTINE_ID = "col_last_routine_version"; 
    private static final String COL_LAST_HOLIDAY_ID = "col_last_holiday_version"; 


    /** 
    * 
    *Holiday table and Fields 
    */ 

    private static final String TABLE_HOLIDAY = "tbl_holiday"; 
    private static final String COL_HOLIDAY_TITLE = "col_holiday_title"; 
    private static final String COL_HOLIDAY_DESC = "col_holiday_desc"; 
    private static final String COL_HOLIDAY_START = "col_holiday_start"; 
    private static final String COL_HOLIDAY_END = "col_holiday_end"; 


    /** 
    * Queries to create tables. 
    */ 

    private static final String CREATE_FRIENDS_TABLE_QUERY="CREATE TABLE IF NOT EXISTS"+SPACE+TABLE_FRIENDS 
      +"("+COL_FRIEND_ID+SPACE+"INT NOT NULL PRIMARY KEY"+COMMA 
       +COL_FRIEND_NAME+SPACE+"VARCHAR(300)"+COMMA+COL_E_MAIL+SPACE+"VARCHAR(100)"+COMMA+COL_CLASS_NAME+SPACE+"VARCHAR(50)"+COMMA 
       +COL_SEMESTER_NAME+SPACE+"VARCHAR(50)"+COMMA+COL_GROUP_NAME+SPACE+"VARCHAR(50)" 
      +")"; 

    private static final String CREATE_EVENTS_TABLE_QUERY="CREATE TABLE IF NOT EXISTS"+SPACE+TABLE_EVENTS 
      +"("+COL_EVENT_ID+SPACE+"INT NOT NULL PRIMARY KEY"+COMMA+COL_EVENT_TITLE+SPACE+"VARCHAR(200)" 

      +")"; 
    private static final String CREATE_HOLIDAY_TABLE_QUERY=" CREATE TABLE IF NOT EXISTS"+SPACE+TABLE_HOLIDAY 
      +"(" +COL_HOLIDAY_TITLE+SPACE+"VARHCAR(200)"+COMMA+COL_HOLIDAY_DESC+SPACE+"VARCHAR(200)"+COMMA 
       +COL_HOLIDAY_START+SPACE+"VARCHAR(200)"+COMMA+COL_HOLIDAY_END+SPACE+"VARCHAR(200)" 
      + ")"; 
    private static final String CREATE_CLASSROUTINE_TABLE_QUERY="CREATE TABLE IF NOT EXISTS"+SPACE+TABLE_ROUTINE 
      +"(" + COL_START_TIME+SPACE+"VARCHAR(20)"+COMMA+COL_END_TIME+SPACE+"VARCHAR(20)"+COMMA+COL_SUBJECT_NAME+SPACE+"VARCHAR(20)" 
       +COMMA+COL_TEACHER_NAME+SPACE+"VARCHAR(150)" 
      +")"; 

    private static final String CREATE_REC_VERSION_TABLE="CREATE TABLE IF NOT EXISTS"+SPACE+TABLE_RECORD_VERSION+ 
      "(" +COL_LAST_EVENT_ID+SPACE+"INTEGER NOT NULL"+COMMA+COL_LAST_FRIEND_ID+SPACE+"INTEGER NOT NULL"+COMMA 
      +COL_LAST_HOLIDAY_ID+"INTEGER NOT NULL"+COMMA+COL_LAST_ROUTINE_ID+SPACE+"INTEGER NOT NULL" 
      + ")"; 





    public InAppCacheManager(Context context) { 
     super(context, DATABASE_NAME, null, DB_VERSION); 


    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 



     try { 

      db.execSQL(CREATE_REC_VERSION_TABLE); 
      db.execSQL(CREATE_FRIENDS_TABLE_QUERY); 
      db.execSQL(CREATE_CLASSROUTINE_TABLE_QUERY); 
      db.execSQL(CREATE_HOLIDAY_TABLE_QUERY); 
      db.execSQL(CREATE_EVENTS_TABLE_QUERY); 
      Log.i("Caching", "Caching environment all set"); 
      // Toast.makeText(mContext,"environemnt set for in-app caching",Toast.LENGTH_SHORT).show(); 
     }catch (SQLException ex) { 

      Log.e("CachingError;=>",ex.toString()); 
      // Toast.makeText(mContext,"Error in creating database for caching",Toast.LENGTH_LONG).show(); 

     } 

    } 

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

    } 

    public class MapRoutine{ 

     String SubjectName; 
     String TeacherName; 
     String StartTime; 
     String EndTime; 
    } 
} 
+0

あなたのコードはどのように見えますか? –

+0

あなたのコードを含めるために[編集する](http://stackoverflow.com/posts/36092180/edit) –

+0

また、あなたは本当に[あなたの古い質問](http://stackoverflow.com)の回答を受け入れる必要があります/ users/4980199/raaz-dhakal) –

答えて

0

this Github issueによると、そのエラーは、データベース・バージョンをアップグレードせずにデータベースを変更する場合に発生します。

onUpgradeを空にする代わりに、そのように実装してみてください。

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    if (oldVersion != newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_1); 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_2); 
     // ... 
     onCreate(db); 
    } 
} 
+1

問題を解決していないため、初めてアプリケーションをインストールするときにこのエラーが発生します。 –

関連する問題