4

我想使用 sqlite3_limit 函数来设置附加数据库的最大数量。

sqlite3_limit(db, SQLITE_LIMIT_ATTACHED, 62);

问题 1 - 我如何(如果有的话)在 Android 中执行此操作?


我在这里阅读了http://sqlite.org/limits.html - 第 11 点。

默认情况下有 10 个附加数据库的软限制,但是我刚刚成功附加了 11 个数据库。

问题 2 - Android 上 max Attached Databases 的默认行为是什么?- 是否设置为 SQlite3 的硬限制 62?如果是这样,这就是我所需要的。

谢谢大家

4

1 回答 1

4

sqlite3_limit只能用于降低限制:

运行时限制旨在用于管理其自己的内部数据库以及由不受信任的外部源控制的数据库的应用程序。[...] 内部数据库可以被赋予较大的默认限制。可以为由外部资源管理的数据库提供更小的限制,以防止拒绝服务攻击。

SQLITE_MAX_ATTACHED编译 SQLite 时使用符号设置硬限制:

对于每个限制类别 SQLITE_LIMIT_ NAME ,在编译时由一个名为 SQLITE_MAX_ NAME的 C 预处理器宏设置一个硬上限。[...] 将限制增加到硬上限之上的尝试会被默默地截断为硬上限。

看来,在您的 Android 设备上,供应商确实增加了硬限制,但您不能保证在其他所有设备上都是如此。

于 2013-03-05T18:09:56.483 回答