我的应用程序中漂浮着一堆 sqlite 数据库(不要问),我需要能够获取数据库的文件位置。有没有办法通过使用 sqlite3 对象来做到这一点? (即创建数据库时不必将路径与数据库一起存储)
额外问题:如果有多个数据库附加到 sqlite3 对象,我如何获取其他数据库(它们已附加)?
谢谢!
sqlite3 应该是不透明的结构,但是检查 SQLite 标头,也许你会发现一些未记录的字段,其中包含数据库的路径。
即使您找到这样的字段,使用它也不是个好主意,并且迟早会导致维护问题。
首先,为什么需要保留数据库的路径和句柄?
这对我有用
SELECT file FROM pragma_database_list WHERE name = 'main';
使用 filemon/processmon 监视您的应用程序/进程正在访问哪些文件。您将找到您的 SQLite 文件。