gpt4 book ai didi

android - 如何在 sqlite 中打印打开的游标列表?

转载 作者:行者123 更新时间:2023-11-29 14:34:07 24 4
gpt4 key购买 nike

是否有一个选项可以在某个时间点在 sqlite 中查看所有打开的游标?我知道在 .Net 上有一些功能可以做到这一点(查看与数据库的所有连接......)

但是我能用 sqlite 做什么呢?

最佳答案

我认为没有办法直接获取此信息。不过,您可以做的是创建您自己的 Cursor 子类,它在静态列表中跟踪当前打开的 Cursor

例如(伪代码,未测试):

public class TrackingCursor extends SQLiteCursor {

private static List<Cursor> openCursors = new LinkedList<Cursor>();

public TrackingCursor(SQLiteDatabase db, SQLiteCursorDriver driver,
String editTable, SQLiteQuery query) {
super(db, driver, editTable, query);
openCursors.add(this);
}

public void close() {
openCursors.remove(this);
}

public static List<Cursor> getOpenCursors() {
return openCursors;
}

}

您需要为数据库提供您自己的工厂,以便创建您的 TrackingCursor 而不是普通的 SQLiteCursor

public class TrackingCursorFactory implements SQLiteDatabase.CursorFactory {

Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
String editTable, SQLiteQuery query) {
return new TrackingCursor(db, masterQuery, editTable, query);
}
}

最后,当您调用 openDatabase 时,通过将工厂作为参数传递给数据库来使用该工厂。

关于android - 如何在 sqlite 中打印打开的游标列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6580025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com