问题标签 [fmdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
244 浏览

cocoa-touch - Date entry into database through GUI for Date which is readable by FMDatabase

I have a set of events which I will have to feed into the database before I ship the app so that the application is ready to read from this database.

I have seen some posts like these which explain how to enter NSDate into database so that it can be read back:

  1. iPhone SQLite date problem
  2. Persisting Dates to SQLite3 in an iPhone Application

Now, I want to entry dates into the database by running queries like:

When I run this query through MesaSQLite application, the returned results are perfect as expected:

But when I run the same query through FMDatabase inside the application, no records are returned.

The datatype of the first and second field in VendorEvents in my database is of type "Date". The only difference in the way I am entering the data is by using MesaSQLite application. So, is there any mistake I might be doing due to which I am not getting the results in FMDatabase?

Thanks, Raj

0 投票
2 回答
3023 浏览

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

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

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

在使用查询创建的表“页面”上:

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

那么,是这样的吗?苹果现在是否在标准/内置 sqlite 库中启用了 FTS?或者我在这里缺少什么?

谢谢。

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

0 投票
4 回答
3618 浏览

objective-c - 分离 SQLite 数据库时出错 - 数据库已锁定

我有一个基于 SQLite 数据库的系统。每个客户端都有一个本地数据库,有时更新会从主服务器到达,只是一个小的 delta .db 文件。任务是使用 delta 文件合并到本地数据库,两者的架构是相同的。

对于我的数据库管理,我使用可以在此处找到的 fmdb 包装器。在主线程中,我保持与本地数据库的连接打开。增量文件到达后台,我想在后台进行合并以避免这可能导致的任何用户界面冻结。

至于合并本身,我发现的唯一选择是将增量数据库附加到本地数据库,然后插入/更新行,最后分离增量。这不像我预期的那样顺利。

代码说明:

  • 每当准备好处理增量数据库(从服务器到达并保存在可读位置)时,都会在后台线程中调用onDeltaGenerated方法。
  • deltaDBPath是 delta 数据库在文件系统中的绝对位置
  • db变量引用打开 FMDataBase 连接。

代码:

}

在第一次调用此方法后,一切似乎都很好,直到我尝试分离数据库。当我尝试这样做时,我收到以下错误:

我也尝试了相同的方法,但没有将插入插入事务,结果是相同的。另一件事是删除 @synchronized 子句,但也没有运气。我的猜测是,如果尝试从后台线程访问本地数据库连接时失败,那么它是如何设法附加和插入的?任何帮助表示赞赏。

编辑

我将代码移至主线程,因此现在只能从主线程访问数据库。问题依然存在。

编辑2

好的,所以在尝试了一切之后,我暂时放弃了这个,然后当第一个答案出现在这里时又回来了。令人惊讶的是,现在一切似乎都运行良好,所以我的代码一定是正确的。我怀疑这是锁定文件的不同线程的问题,因为我使用 XCode、SQLiteDatabaseBrowser 和我的应用程序打开数据库。即使lsof显示文件没有被锁定,我认为这是错误的,XCode 或 SQLiteDatabaseBrowser 正在锁定它。我认为问题解决了,从中吸取的教训是不要过多地推动 lsof 并更好地计划下次调试。

0 投票
2 回答
4010 浏览

fmdb - 如何在objective-c中使用fmdb遍历sqlite中的所有列

我需要对所有列进行搜索,因此我不想在 where 子句中指定每个列名,而是想创建一个可以搜索所有列的方法。

'filter' 可以是 'WHERE remark=[searchText] AND description=[searchText] AND 等等......'

0 投票
1 回答
579 浏览

ios - 为什么我无法在 IOS 中使用 FMDB 读取我的 SQlite

我已经从 Firefox 工具 SQlite 管理器名称 myTestDB 创建了一个数据库文件

db有一个表名ViewController1,表内容5列(值都是TEXT)

我想按列名读取值,所以这是我的代码....

有很多示例代码使用该方法

但是如果我使用它,代码甚至不会进入while循环

我的代码只是向我记录 5 (null)....

这是为什么...?

感谢您的帮助!

您也可以用中文回答我,谢谢您!

0 投票
2 回答
4339 浏览

ios - 如何在 IOS dev 中使用 FMDB 从 SQLite 读取整行数据?

我可以从这样的代码中读取所有列数据...

或通过这种方式找到一些数据

但是如果我想要一个数组内容整个行的数据(假设我所有的行数据都是一个简单的字符串)

我怎样才能做到这一点......?

感谢您的帮助!

您也可以用中文回答我,谢谢您

0 投票
2 回答
905 浏览

ios - FMDB stringForColumn 返回 nil

我正在循环从 SQLite3 数据库生成的 FMDB 结果集,创建稍后使用的对象。数据内容由各种用户使用各种文本编辑器和编码创建。

一些记录是有问题的,列值返回 nil,即使列中有文本。

例如,当我运行命令行查询但 FMDB 方法 stringForColumn 返回 nil 时,我看到数据库中列的文本。我还看到潜在的原因是列内容中的高 ascii 字符,这很可能是用户从 MS Word 复制和粘贴文本到达那里的。我的问题是处理这种类型的“脏”数据的最佳方法是什么,意识到某些数据可能在带有这些字符的数据库中?

在此处输入图像描述

0 投票
1 回答
1254 浏览

ios - ios fmdb 从文件加载数据库

我使用 sqlite 和 fmdb 包装器。我的加载数据库代码是这样的:

我添加biscuit.sqlite到我的项目中,但此代码创建新文件而不是打开现有文件。我怎样才能加载这个文件?

0 投票
1 回答
3055 浏览

objective-c - NSData UIImageJPEGRepresentation 未写入 SQLite fmdb

我正在尝试将 jpeg 转换为 nsdata 对象,然后使用 fmdb 包装器将该数据存储在 sqlite 数据库的 blob 列中。

例如:

创建 t1 的地方类似于:

理想情况下,我将能够提取数据并将其转换回 jpeg,如下所示:

我已经将这种类型的模型用于其他数据类型,如字符串等。没有问题。在我目前的尝试中,我将此模型与字符串列和 1 个 blob 列一起使用。当我写入数据库时​​,所有字符串都存储得很好,但是当我尝试像上面那样读回 blob 列时,我得到了 blob 列的 null 返回。在写入数据库之前,我仔细检查了我正在写入的 NSData 不为空,并且确实包含 jpeg 表示,并且确实如此。一个已知的问题是否会出现在任何人身上,或者我只是在外部做错了什么?

0 投票
0 回答
1269 浏览

ios - FMDatabase iOS INSERT 问题

我正在使用数据库制作应用程序。对于模态,我使用 FMDatabase 类。现在我必须在两个表中插入一些新数据: -project(id_proj primary key autoince unique, name, baseImage) -imagesforpro(id_img primkey autoincr unique, smallimage, largeimage, id_proj) 我有一个方法-(void)addProject:(Project*)proj可以传递一个 Project 对象. 然后我必须将 projectName 和 baseImage 插入到项目表中,然后提取我刚刚插入的记录的 id_proj 并将大小图像插入到 imagesforpro 表中。如何记住最后插入的记录的 id_proj(自动增量)?此外,如何使用INSERT?我是否正确使用它?如何将 NSData 正确放入数据库?谢谢。这是我到目前为止所拥有的: