SQLITE3增加Max Columns

时间:2017-03-29 14:21:16

标签: c++ sqlite

我正在考虑使用SQLlite3,所以我开始了一些性能测试。

因为我有一个包含许多列的表,我想从SQLite3增加MAX列限制。 正如我在SQLite网站上看到的那样,限制被设置为2000列,现在我想增加它。

我想使用sqlite3_limit()但是,因为我使用SQLAPI,所以我不能使用这个函数。

我在某个网站上看到我需要在SQLite内部更改某些内容,然后必须重新编译它,但我还没有真正理解这部分,所以我想问:

还有另一种方法可以增加Max列吗?

我的程序在c ++的Win10上运行

1 个答案:

答案 0 :(得分:3)

除了通过在编译时设置所需的列数,没有其他方法。

幸运的是,这并不难。

  1. 下载合并源代码here。它被命名为sqlite-amalgamation - * .zip
  2. 解压缩并更改unzippped文件夹中的目录。您会在其他文件中看到sqlite3.csqlite3.h
  3. 发出此语句以创建目标文件并设置所需的列数:gcc -I. -O3 -DSQLITE_MAX_COLUMN=5000 -c sqlite3.c -o sqlite3.o将5000更改为您想要的数字。请注意,根据sqlite3.c中的注释,您不应使用大于32676的数字。
  4. 创建一个静态库以链接:ar crsf libsqlite3.a sqlite3.o
  5. 现在,在将库放置在链接器知道的位置(或使用-L / path / to / library)之后,可以使用-lsqlite3编译程序时链接库。

    替代步骤3)和4)

    如果您不想实际创建静态库,但您只想在源代码中删除sqlite3.h和sqlite3.c(SQLite本身建议使用它们的合并文件),那么打开使用您喜欢的编辑器的sqlite3.c,查找SQLITE_MAX_COLUMN并修改其中的值。

    我通过MinGW使用gcc来做到这一点。相同的步骤适用于MSVC提供的工具,只是根据需要更改编译和库创建的命令。