SQLite无法在频繁的“ SELECT”查询中打开数据库文件(代码14)

Java机器

我有下面的“ Singleton”类来处理SQLite连接,并确保整个流程/应用程序具有1个连接实例:

public class DBController {
  private static DBController instance = new DBController();
  private static DBHelper dbHelper;
  public static DBController getInstance()
  {
    return instance;
  }
  public SQLiteDatabase dbOpen(Context context)
  {
    if(dbHelper == null)
        dbHelper = new DBHelper(context);
    return dbHelper.getWritableDatabase();
  }
}

和DBHelper类本身:

public class DBHelper extends SQLiteOpenHelper {

  public DBHelper(Context context) {
    super(context, "database.db", null, 1);
  }
  @Override
  public void onCreate(SQLiteDatabase db) {
    final String position = "CREATE TABLE test (" +
            "test TEXT NOT NULL);";
    db.execSQL(position);
  }
}

当我经常尝试从数据库中“选择”某些信息时,出现以下错误:

SQLiteLog: (14) cannot open file at line 31278 of [2ef4f3a5b1]
SQLiteLog: (14) os_unix.c:31278: (24) open(/data/user/0/uz.mycompany.myapp/databases/database.db-journal) - 
SQLiteLog: (14) cannot open file at line 31278 of [2ef4f3a5b1]
SQLiteLog: (14) os_unix.c:31278: (24) open(/data/user/0/uz.mycompany.myapp/databases/database.db-journal) - 
SQLiteLog: (14) statement aborts at 29: [SELECT * FROM test WHERE test='testdata1'] unable to open database file
SQLiteQuery: exception: unable to open database file (code 14); query: SELECT * FROM test WHERE test='testdata1'
android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)

我正在运行以下代码来执行查询:

public String getData(Context context)
{
    SQLiteDatabase _db = dbOpen(context);
    Cursor c = _db.rawQuery("SELECT * FROM test WHERE test='testdata1'", null);
    return getDataFromCursor(c).get(0); //gets data from cursor and returns first one
}

如何管理/改善数据库连接以克服/避免此问题?

博士 沙哈达特·萨克

在对此材料执行任何查询之前(您应该打开数据库)。完成任务后关闭db。

private DBHelper dbHelper = new DBHelper(context);

try {
    _db = dbHelper.getWritableDatabase();
} catch (SQLException s) {
    new Exception("Error with DB Open");
}

//然后立即编写查询...。然后关闭数据库。

_db.close();

您可以查看我的git link1 git link2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

sqlite3.OperationalError:无法打开数据库文件

sqlite3.OperationalError:无法打开数据库文件

SQLite3,OperationalError:无法打开数据库文件

无法在golang中打开SQLite数据库:“无法打开数据库文件[已恢复]”-错误

如何列出使用ATTACH打开的SQLite数据库文件中的表?

SQLite-无法打开数据库文件

使用后续查询时无法打开数据库文件错误

编译时无法打开数据库文件(代码14):PRAGMA journal_mode

放置在网络文件夹中时,无法打开SQLite数据库文件

python sqlite3.connect-无法打开数据库文件

SQLiteException:“无法打开数据库文件”

无法打开数据库文件-Mayan EDMS

Awslogs awslogsd-无法打开数据库文件

SQLite未捕获的PDOException-无法打开数据库文件

无法从UWP应用的本地数据存储中打开SQLite数据库文件

Microsoft.Data.Sqlite.SqliteException:'SQLite错误14:'无法打开数据库文件'。

如何在DB Browser中为SQLite打开sqflite数据库文件?

为什么我的SQLite表上显示“无法打开数据库文件”?

无法在sqlite中打开数据库文件(使用finisar.sqlite)

django中的“无法打开数据库文件”

SQLite错误代码:14,“无法打开数据库文件”

无法打开数据库文件

OperationalError:无法打开数据库文件

sqlite3无法打开数据库文件,运行Centos,flask uwsgi nginx

CDbConnection无法打开数据库连接:无法打开数据库文件

Bacula Web:SQLSTATE [HY000] [14]无法打开数据库文件

令人困惑的Django sqlite3“无法打开数据库文件”错误

无法打开 sqlite 数据库,指定目录或数据库文件不存在

如何列出使用 ATTACH 打开的 SQLite 数据库文件中的表?