首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >苹果现在是否在标准/内置sqlite库中启用了FTS?

苹果现在是否在标准/内置sqlite库中启用了FTS?
EN

Stack Overflow用户
提问于 2012-01-09 10:52:31
回答 2查看 3K关注 0票数 8

我想在我的iOS项目中使用FTS。通过对SO (如this)和其他来源(如this)上的一些问题的回答,我了解到我将不得不在iOS上推出我自己的sqlite3构建,从而替换对默认libsqlite3.dylib的依赖。

但是当我直接运行查询时(在一个新项目中,只链接了标准的'libsqlite3.dylib‘,没有自定义sqlite构建):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"SELECT rowid FROM pages WHERE textcontent MATCH 'jim';" 

在使用查询创建的表'pages‘上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"CREATE VIRTUAL TABLE pages USING fts3(textcontent TEXT)", 

我没有得到任何错误,相反,我得到了正确的结果(单词'jim‘所在行的rowid),就好像FTS是由内置的iOS sqlite库中的defalt启用的一样。

那么,是不是这样呢?苹果现在是否在标准/内置sqlite库中启用了FTS?还是我在这里遗漏了什么?

谢谢。

PS。我在我的项目中使用FMDB作为sqlite包装器,下面是我用来测试以上内容的代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory ,      NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *dbDocumentsPath = [documentsDir stringByAppendingPathComponent:@"1.db"];

FMDatabase *db = [FMDatabase databaseWithPath:dbDocumentsPath];

if (![db open])
    NSLog(@"Could not open db.");

if([db executeUpdate:@"CREATE VIRTUAL TABLE pages USING fts3(textcontent TEXT)"])
    NSLog(@"Virtual Table Created");

if([db executeUpdate:@"INSERT INTO pages(textcontent) VALUES ('Jack')"])
    NSLog(@"First Insert Done");
if([db executeUpdate:@"INSERT INTO pages(textcontent) VALUES ('jim is jam')"])
    NSLog(@"Second Insert Done");

FMResultSet* resultSet1 = [db executeQuery:@"SELECT rowid FROM pages WHERE textcontent MATCH 'jim';"];

while([resultSet1 next])
    NSLog(@"%@",[resultSet1 objectForColumnName:@"rowid"]);
EN

回答 2

Stack Overflow用户

发布于 2013-01-30 05:09:22

This guy在他的第二次博客更新中断言FTS3包含在iOS 5的SQLite库中,从而确认了您的发现。(我也对此进行了测试,并得出了相同的结论。)

票数 2
EN

Stack Overflow用户

发布于 2012-04-19 22:07:05

我已经在我的机器和Lion OS上进行了测试,它工作得很好,但是build不能在任何其他机器上执行FTS (除了FTS,所有的查询都可以工作)。用Leopard OS构建的相同项目不会产生可用的FTS。

但是在项目中删除合并源代码(并启用FTS)会导致在任何机器上构建和运行合并。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8787274

复制
相关文章
CSV逗号分隔值格式文件(示例分析)
CSV全称Comma Separated Values是"逗号分隔值"的英文缩写.通常是纯文本文件,可以被文本编辑软件,Excel或WPS表格打开. 基本规则 开头不留空,以行为单位; 列名(标题)放在第一行(可忽略不加列名); 每一行数据以换行结束,无空行; 以半角逗号作分隔符,列为空也要表达其存在; 列内容如存在半角逗号则用半角引号("")将该字段值包含起来; 列内容如存在半角引号则需要使用半角双引号("")转义,并用半角引号("")将该字段值包含起来; 文件读写时引号,逗号操作规则互逆; 内码格式不限
Qt君
2019/07/15
3.5K0
SQL 将一个字段内用逗号分隔的内容分成多条记录
本文转http://www.mhzg.net/a/20117/2011789260293.html
跟着阿笨一起玩NET
2018/09/18
4.5K0
django 获取post传递的值
django 中post方法传值,用普通的request.POST.get(‘value’) 是没法正常接收到前端传递过来的值的
kirin
2020/07/14
3.9K0
LINQ to XML 从逗号分隔值 (CSV) 文件生成 XML 文件
参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx
跟着阿笨一起玩NET
2018/09/19
2.6K0
python用 GET,POST,PUT
、JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。 二、HTTP的请求方法 HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式: . OPTIONS - 返回服务器针对特定资源所支持的HTTP请求方法。                    也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。 . HEAD    - 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。                 这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。 . GET     - 向特定的资源发出请求。                 注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app.中。                 其中一个原因是GET可能会被网络蜘蛛等随意访问。 . POST    - 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。                 数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 . PUT     - 向指定资源位置上传其最新内容。 . DELETE  - 请求服务器删除Request-URI所标识的资源。 . TRACE   - 回显服务器收到的请求,主要用于测试或诊断。 . CONNECT - HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 . PATCH   - 用来将局部修改应用于某一资源,添加于规范RFC5789。 其中,GET,POST, PUT, DELETE常用于RESTful API的实现,所以下面做的代码实现 三、Python实现的json数据以HTTP GET,POST,PUT,DELETE方式进行页面请求
py3study
2020/01/06
2.6K0
ThreadLocal 线程内取不到值
在拦截器里, 从 request 请求里拿出了一些数据例如用户id啥的, 存储到了 ThreadLocal 里, 在后面具体的业务处理中, 从 ThreadLocal 却里取不到值
芥末鱿鱼
2022/05/05
1.5K0
逗号运算符和逗号表达式
C语言提供一种特殊的运算符。用它将两个(或多个)表达式连接起来。 如 3+5,6+8 上式称为逗号表达式。逗号表达式的一般形式为 表达式1,表达式2
Twcat_tree
2022/11/30
1.2K0
JS 数字,金额 用逗号 隔开(数字格式化)
例如:  12345格式化为12,345.00  12345.6格式化为12,345.60  12345.67格式化为 12,345.67  只留两位小数。  回来后写了个格式化函数。可以控制小数位数,自动四舍五入。 代码如下: 
Java架构师必看
2021/05/20
13.6K0
nodejs 用request实现post请求
以下是使用 Node.js 和 Request 模块来实现 POST 请求的示例代码:
用户8703799
2023/05/19
1.4K0
HTTP 协议内常见的post提交数据类型介绍
我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。HTTP 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。
EasyNVR
2020/05/26
9950
postfix邮箱_用post方式发送文件
https://blog.csdn.net/wh211212/article/details/53040620 https://blog.jjonline.cn/linux/185.html
全栈程序员站长
2022/11/09
4110
postfix邮箱_用post方式发送文件
php 字符串打散为数组,用逗号分隔出数组
使用explode可以将一段字符串打散成一个数组,不过,explode使用某个字符打乱,例如以上例子,我在explode圆括号内第一个参数是空格,第二个参数为我们将要打乱的字符串,那么连起来的意思就是把$str字符串通过空格打散成字符。
1_bit
2020/10/23
2.2K0
Shell内值命令之exit「建议收藏」
需求:编写shell脚本使用exit退出,退出时返回一个非0数字状态值,执行脚本文件并打印返回状态值
全栈程序员站长
2022/11/10
6230
列表内数字组合最大值
第一种 import itertools lt = [4, 40, 45, 6, 9, 3, 5, 2, 8] lt2 = map(str, lt) it = itertools.permutations(lt2,len(lt)) # for i in it: # print(i) m = map(lambda x:''.join(x), it) # for i in m: # print(i) print(max(m)) # print(m, type(m)) 第二种 lt = [4,
py3study
2020/01/17
8490
SQL如何将一个列中值内的逗号分割成另一列
例如某个列是这样的: 7890 – 20th Ave E Apt 2A, Seattle, VA 9012 W Capital Way, Tacoma, CA 5678 Old Redmond Rd, Fletcher, OK 3456 Coventry House Miner Rd, Richmond, TX
繁华是客
2023/03/03
1.8K0
自适应的逗号
>>> name = [ 'python', 'java', 'javascript' # 缺少逗号 'hello' ] >>> names ['python','java','javascripthello'] >>> my_str = ( 'This is a super long string' 'across multiple lines' 'no backslash characters' ) >>> my_str 'This is a
TalkPython
2019/06/11
1.2K0
C++:统计字符串内大小写字母,数字空格,逗号等
川川好久没发文了,最近实在太忙,要是感兴趣可以直接跟我私聊, QQ:2835809579
川川菜鸟
2021/10/18
9500
北京这两天为啥颜值爆表?
转自|中国天气网 微信|chinaweathernews 作者|朱茵 北京这几天的天空美疯了,无比透亮的蓝天上,漂浮着棉花糖般的云朵,随便一抬头,就是一幅当年windows XP里的风景桌面啊!如此美景,让网友拍照片都拍到手软了,路上处处都是举着手机对着天空各种啪啪啪啪啪的人,还有人调侃,要是把朋友圈里晒的图都拼起来,都能数出整个帝都有几朵云! 为啥这几天颜值如此爆表? 两个字——北风。 因为这两天北京在刮水汽少、干燥的北风,刮走了所有干扰你视线的东西,所以天空透明度高,天蓝得可以溺死你。 好了,不太在乎原
大数据文摘
2018/05/21
5830
PHP模拟发送POST请求之三、用Telnet和fsockopen()模拟发送POST信息
枕边书
2018/01/04
1.9K0
PHP模拟发送POST请求之三、用Telnet和fsockopen()模拟发送POST信息
点击加载更多

相似问题

用C语言进行串行通信

22

用USB到串行设备和controlTransfers的Android通信

11

UBUNTU C的USB到串行通信问题

11

通过USB集线器进行Android USB主机串行通信

226

C#串行通信

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文