sql >> データベース >  >> RDS >> SQLite

原因:android.database.sqlite.SQLiteException:そのようなテーブルはありません:(コード1)Android

    問題は、一部のデバイスがアプリをアップグレードしているため、checkDataBase() trueを返す 、したがって、copyDataBase()を呼び出していません 。したがって、generalSettingsがない以前のデータベースを使用しています 表。これを解決するには:

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    if(newVersion>oldVersion)
      copyDatabase();
    }
    

    また、コンストラクターを更新します:

    public InstallDB(Context context, String name) {
        super(context, name, null, DB_VERSION); 
        // DB_VERSION is an int,update it every new build
    
        this.ctx = context;
        this.DBNAME = name;
        this.DBPATH = this.ctx.getDatabasePath(DBNAME).getAbsolutePath();
        Log.e("Path 1", DBPATH);
    
    }
    


    1. ビジネスロジック:データベースまたはアプリケーション層

    2. 手動データベース展開と自動展開のベンチマーク

    3. ORACLE更新トリガー後:ORA-04091変更テーブルエラーの解決

    4. エンティティフレームワークを介してintの配列をT-SQLストアドプロシージャに渡す