Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c SQLite表达式最大深度限制_Objective C_Macos_Cocoa_Sqlite - Fatal编程技术网

Objective c SQLite表达式最大深度限制

Objective c SQLite表达式最大深度限制,objective-c,macos,cocoa,sqlite,Objective C,Macos,Cocoa,Sqlite,环境:MacOSX雪豹上的可可粉 我已达到sqlite查询的最大(默认)深度: Expression tree is too large (maximum depth 1000) sqlite说在编译时设置sqlite\u MAX\u EXPR\u DEPTH,但是如何设置呢?我使用默认的sqlite3框架,与以下内容一起导入: #import <sqlite3.h> 这是对的?您的所有断言都是对的(这是一个编译时设置,可以在运行时降低而不是提高)。您可以选择限制查询或将SQLi

环境:MacOSX雪豹上的可可粉

我已达到sqlite查询的最大(默认)深度:

Expression tree is too large (maximum depth 1000)
sqlite说在编译时设置
sqlite\u MAX\u EXPR\u DEPTH
,但是如何设置呢?我使用默认的sqlite3框架,与以下内容一起导入:

#import <sqlite3.h>

这是对的?

您的所有断言都是对的(这是一个编译时设置,可以在运行时降低而不是提高)。您可以选择限制查询或将SQLite的自定义版本链接到生产应用程序

SQLite的优点是它的构建非常简单。了解。此外,苹果公司针对OS X 10.6.8的SQLite XCode项目也在开发中。无论您是使用苹果的项目还是自己制作项目,都可以轻松创建一个共享库,将静态链接到项目附带的可执行文件中。在发布代码时,您必须担心兼容性,但这是复杂查询的代价

您还可以在另一个问题中询问简化复杂查询的问题。

这是一个更简单的解决方案(尽管还远远不够完美)

我也有同样的错误,我不得不使用Android default的SQLite实现(查询系统音频数据库)

问题出现了,因为我删除了一些“无用”的括号,所以我把它们放回原处,不再出错

崩溃:

id = 387 OR id = 388 OR id = 390 OR id = 391 [...] OR id = 392
不会崩溃:

(id = 387 OR id = 388 [...] OR id = 390) OR (id = 391 [...] OR id = 392) OR (...
我很幸运,因为我的括号没有任何意义,可以很容易地放置。
不是很干净,但它有助于显著减少碰撞,所以我对这种情况很满意

宾果!非常感谢。为后代自动回答:为了解决这个问题,我使用sqlite3[Mergalion][1](ZIP存档包含sqlite3.7.10的所有C源代码,并合并到一个源文件中),步骤:1。下载并导入项目2中的sqlite.h和.c。删除sqlite框架3。在SQLITE.c中找到SQLITE_MAX_EXPR_DEPTH 1000并替换为SQLITE_MAX_EXPR_DEPTH 0;)[1]:
(id = 387 OR id = 388 [...] OR id = 390) OR (id = 391 [...] OR id = 392) OR (...