私は真の偽値を持つようにSQLテーブルを修正しようとしています。私は1または0のタイプBITを使用しています。テーブルを変更しようとしましたが、正しく動作していないようです。列インデックスは-1です。私sqlitehelperクラスのTRUE/FALSEの値を持つ列が含まれるようにSQLテーブルを変更するにはどうすればよいですか?
、私は私のONUPGRADE方法のためにこれを使用してみました:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
Log.d(TAG,"inner onupgrade called");
Log.w(TAG, "Upgrading database from version "
+ oldVersion + " to "
+ newVersion + ", which will destroy all old data");
//db.execSQL("DROP TABLE IF EXISTS " + TableMetaData.TABLE_NAME);
db.execSQL("ALTER TABLE " + TableMetaData.TABLE_NAME
+ " ADD COLUMN " + TableMetaData.HAS_UPLOADED + " BIT DEFAULT 0"
+ ";");
//onCreate(db);
}
私は後で私のアプリでコラムを読んしようとすると、私はエラーを取得し、私は列インデックスであることを-1見つけます。テーブルを正しく修正していますか?ここで
私はlogcatから取得エラーです:
03-27 17:48:37.111: E/CursorWindow(2884): Bad request for field slot 0,-1. numRows = 1, numColumns = 5
03-27 17:48:37.111: D/AndroidRuntime(2884): Shutting down VM
03-27 17:48:37.111: W/dalvikvm(2884): threadid=1: thread exiting with uncaught exception (group=0x400259f8)
03-27 17:48:37.131: E/AndroidRuntime(2884): FATAL EXCEPTION: main
03-27 17:48:37.131: E/AndroidRuntime(2884): java.lang.IllegalStateException: get field slot from row 0 col -1 failed
03-27 17:48:37.131: E/AndroidRuntime(2884): at android.database.CursorWindow.getString_native(Native Method)
03-27 17:48:37.131: E/AndroidRuntime(2884): at android.database.CursorWindow.getString(CursorWindow.java:329)
03-27 17:48:37.131: E/AndroidRuntime(2884): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:49)
タイプをINTEGERに変更し、同じことが起こっているようです。 – Stagleton