我遇到了一个sqlite数据库程序的问题。我试图将30个数据库连在一起并运行到10个错误的限制: “SQLite错误 附加数据库太多 - 最多10“
根据http://www.sqlite.org/c3ref/limit.html,我们应该能够将允许的附加数据库的最大数量设置为10以上。我正在使用C#和system.data.sqlite.dll作为接口。有谁知道如何设置限制> 10?
答案 0 :(得分:5)
从implementation limits页面(强调我的):
使用sqlite3_limit(db,SQLITE_LIMIT_ATTACHED,size)接口在运行时可以降低的最大附加数据库数。
来自Run-time limits页面:
对于每个限制类别SQLITE_LIMIT_ NAME ,在编译时由C预处理器宏(称为SQLITE_MAX_ NAME )设置硬上限。 (名称中的“_ LIMIT _”更改为“_ MAX _”。)尝试增加超出其硬上限的限制将被静默截断为硬上限。
基于您只能降低限制的事实,我认为SQLITE_LIMIT_ATTACHED是一个设置为10的编译常量。如果要将其设置得更大,则必须在源代码中更改它并重新编译SQLITE。
还有更多:
SQLite中的代码生成器使用位图来跟踪附加的数据库。这意味着附加数据库的数量不能增加到62以上。
你有它。即使您将其大于10,由于数据库的体系结构,62也是物理硬限制。