データベースの PersonDOB 列から日付のリスト (文字列形式) を取得しようとしています。次に、データベースがロックされている問題が発生しています。データベースの open() メソッドと close() メソッドを宣言しました。これらのエラーが発生していますが。なぜこのエラーが発生するのか理解できません。私はいくつかの記事を読みました
これらだけでなく、他の質問や記事にも記載されている解決策を試しました。しかし、私の状況に合った適切な解決策を得ることができません。コード全体で、書き込み操作を 1 回だけ使用しています。したがって、データ破損の問題はありません。データベースからデータを取得するコードは次のとおりです。
public String[] getDataInArray() { // get data for list and return in array form
// TODO Auto-generated method stub
SQLiteDatabase myDB;
String[] return_columns;
try {
myDB=this.openDataBase();
String DOB = "PersonDOB";
String[] columms = new String[]{ DOB };
Cursor c = myDB.query("Persons", columms, null, null, null, null, null);
int iDOB = c.getColumnIndex(DOB);
int rowcount = 0;
return_columns = new String[c.getCount()];
for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
{
return_columns[rowcount] = c.getString(iDOB);
rowcount = rowcount + 1;
}
if(c != null)
{
myDB.close();
c.close();
}
}catch(SQLException sqle){
throw sqle;
}
for (int i = 0;i<return_columns.length;i++)
{
Log.v("DOB", return_columns[i]); //I am not
getting this log message in the logcat.
}
return return_columns;
}
そして、logcatに次のエラーが表示されます-
09-19 15:58:00.140: W/System.err(7115): java.lang.NullPointerException
09-19 15:58:00.140: W/System.err(7115): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
09-19 15:58:00.140: W/System.err(7115): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
09-19 15:58:00.200: W/System.err(7115): at com.example.fromstart.adapter.open(adapter.java:30)
09-19 15:58:00.210: W/System.err(7115): at com.example.fromstart.adapter.getDataInArray(adapter.java:222)
前もって感謝します。