如何检查是否附加了sqlite数据库?

时间:2012-08-17 07:21:06

标签: c++ sqlite

我正在使用sqlite来存储我的数据。我有两个数据库。在我的应用程序中,每次新请求到来时,我都会将第一个db附加到第二个db。问题是,如果有两个请求,它显示已经在使用的数据库(它尝试使用相同的别名'db'连接两次)。我想知道是否有办法检查是否附加了数据库?

2 个答案:

答案 0 :(得分:4)

PRAGMA database_list;

输出带有完整可用数据库列表的结果集。第一列是数据库名称,第二列是数据库文件(如果它不与文件关联,则为空)。主数据库始终命名为main,临时数据库始终为temp

sqlite> attach "foo.db" as foo;
sqlite> pragma database_list;
0|main|
2|foo|/Users/me/tmp/foo.db

答案 1 :(得分:2)

我假设您正在为多个请求重用与数据库相同的连接。由于数据库对连接对象是attached,因此对于具有相同连接的第二个或更多请求,附加失败。我认为解决方案是在建立新连接后立即附加数据库,而不是每次都收到请求。