安卓sqlite3_limit是什么?

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的硬限制? 如果是,则这就是我所需要的。
谢谢大家。
1个回答

4

sqlite3_limit 只能用于降低限制:

运行时限制旨在用于管理自己的内部数据库和由不受信任的外部来源控制的数据库的应用程序。 [...] 内部数据库可以获得大的默认限制,而由外部来源管理的数据库可以获得设计用于防止拒绝服务攻击的更小的限制。

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

对于每个限制类别 SQLITE_LIMIT_NAME,都有一个硬上限,在编译时由名为 SQLITE_MAX_NAME 的 C 预处理器宏设置。[...] 尝试将限制增加到其硬上限以上会被静默截断到硬上限。

似乎在您的Android设备上,供应商确实增加了硬限制,但无法保证在其他设备上也是如此。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接