<ATTACH限制> 10

时间:2012-03-23 19:34:01

标签: c# sqlite

我遇到了一个sqlite数据库程序的问题。我试图将30个数据库连在一起并运行到10个错误的限制: “SQLite错误 附加数据库太多 -​​ 最多10“

根据http://www.sqlite.org/c3ref/limit.html,我们应该能够将允许的附加数据库的最大数量设置为10以上。我正在使用C#和system.data.sqlite.dll作为接口。有谁知道如何设置限制&gt; 10?

1 个答案:

答案 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也是物理硬限制。