问题标签 [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 投票
4 回答
20781 浏览

ios - 获取 SQLite 上最后插入行的 ID 的最佳方法

在 iPhone 上,使用 FMDB 获取 SQLite 数据库中最后插入行的 ID 的最佳方法是什么?

有没有更好的方法而不是这样做:

0 投票
1 回答
2944 浏览

objective-c - 如何使 FMDB 的数据库成为单例

我已经使用 SQLite 一段时间了,并决定去 FMDB。我需要使它成为一个单例。下面是我的代码;为了让 FMDB 访问单例 d/b,我需要进行哪些更改?

这是我使用 FMDB 初始化 d/b 的代码:

0 投票
1 回答
8891 浏览

objective-c - SQLite:数据库错误,“内存不足”

我正在使用 FMDB 创建记录并将其添加到 ad/b。创建 d/b 的方法是:

这不会导致错误。但是,当我接下来在“打开”之后执行一 (1) 个“插入”时,我从 FMDB 收到一条错误消息,提示 DB 错误:7“内存不足”。在此之后的每个 sql 语句,我都会得到同样的错误(只有 d/b 的创建没有给出错误!)。这是插入的代码:

这是一个非常小的 d/b,数据最少。我跑了 Inspector,没有什么不寻常的。任何建议将不胜感激。

0 投票
1 回答
1549 浏览

ios - FMDB 多线程问题

在我的 ios 应用程序中,我使用 FMDB 连接到 sqlite3 数据库。在应用程序中,db将用于多线程。因此,我以这种方式创建了一个单例:

但是 Error: FMDataBase is current in use ,有时会发生。然后我更新实例:

错误仍然存​​在。所以我的问题是如何正确创建单例以及为什么代码无法避免错误。谢谢!

0 投票
1 回答
658 浏览

xcode - 循环不工作时 SQlite-FMDatabase 查询

我有一个表“关键字”,它有 2 列“pk”和“文本”。在 firefox SQLite manager 中,我可以看到“text”列中有两个名字“john”和“tom”。我的代码中没有错误或警告。当我在模拟器中运行它时,我可以在控制台中看到我永远不会进入 While 循环。这意味着 FMResultSet "rs" 没有从 SQL 查询中得到任何结果。我收到 "Opened successfully" 消息意味着我的数据库已打开没有任何问题,并且数据库路径、数据库名称等都是正确的。我的查询也是正确的,因为它没有在控制台中显示任何查询错误。但我没有收到“while loop started”消息。我的数据库数组也是空的,所以我知道 while 循环不起作用。我正在使用 FMDatabase。这是我的代码

0 投票
1 回答
1676 浏览

cocoa - 可能的 FMDatabase/FMResultSet 错误

尽管我很少遇到 FMDatabase 问题,但我今天注意到一些奇怪的行为,并且想知道这是一个错误还是由于我自己的错误。

奇怪的是,这一切都很好,但我想安全起见并在 while 循环之前使用 [db hasAnotherRow] 的 if 语句,但即使结果集确实包含结果,这也会返回 NO。

当我将结果字典(使用 FMResultSet 的 resultDict 方法)记录到控制台时,我收到来自 FMResultSet 的警告“警告:此集中似乎没有列”。即使我可以在我的 while 循环中使用它们。

我在这里错过了什么吗?

0 投票
2 回答
577 浏览

iphone - sqlite3 无法为我读取数据库,但不能在另一台机器上进行相同的提交

背景

sqlite我们有一个用于大型数据库的 iPhone 应用程序。我们使用FTS3全文搜索,所以我们必须“推出我们自己的”sqlite,而不是使用 iOS SDK 中包含的库。我们使用合并的 sqlite.c 文件,并FMDB用作 Obj-C 包装器。

问题

我的项目可以编译,但它在我安装的异常中崩溃,以检测数据库是否出现故障(稍后会详细介绍)。然而,我的搭档正在愉快地编码,没有任何问题 - 在与我完全相同的提交修订上。这就是奇怪的地方。

具体来说,应用程序在首次加载时执行以下操作:

  1. 将数据库复制到用户的文档目录中,使其可写。(工作正常)
  2. 使用 FMDB 打开数据库,databaseWithPath:后跟open.
  3. 此时调用goodConnectionFMDB 会返回YES- 数据库确实是打开的并且正在工作。
  4. 调用SELECT * FROM sqlite_master WHERE type = 'table'不返回任何记录。(应该有很多表)

我试过的

现在,如果你让 sqlite “打开”一个不存在的数据库——它只会创建一个。这就是这种行为的样子。因此,我打开了一个终端窗口,导航到模拟器上我的应用程序的 Documents 目录,然后输入:

它运行 sqlite3,当然,一切看起来都很好。我所有的数据都在那里。

我逐行检查了 FMDB 的打开方法,以确保我打开了正确的数据库。看来我确实是。

我尝试的第一件事是降级到 Xcode 3.2.6。同样的问题,所以我认为我已经排除了编译中的 Xcode 3/4 差异(尽管我一开始怀疑)。

有没有人可以尝试调试,或者知道我的问题可能是什么?

0 投票
1 回答
366 浏览

objective-c - FMDatabase 是否存在“NOT IN”问题或 iPhone 上的 SQLite 不支持它?

我正面临 FMDatabase 的严重问题。我正在使用如下查询

我使用“NOT IN”是因为可能有一个我想排除的别名列表而不是“example_alias”。但奇怪的是,这个查询的结果包括我想要排除的别名的所有记录。所以 FMDatbase 选择了错误的记录。如果我将此查询复制并粘贴到 SQLite 数据库浏览器中并在那里执行,则查询正确完成。
如果我删除“IN”前面的“NOT”,那么 SQLite 数据库浏览器将向我显示具有给定别名的所有记录,并且正如预期的那样,FMDatabase 将给我所有没有它们的记录...
在下一步中,我想替换 SELECT使用 DELETE,但如果保留所有不需要的记录并删除我想要保留的记录,这确实很痛苦。
这是 FMDatabase 或底层 SQLite 框架的已知错误(我使用的是 libsqlite3.dylib)还是我做错了什么?

0 投票
1 回答
233 浏览

iphone - fmdb iphone 3g 大阵列

我在使用固件为 4.2.1 (8C148) 的 iphone 3g 时遇到了 fmdb 问题。我有一个包含 sql 命令(从数据库下载)的大型 NSMutableArray。我通过 NSAutoreleasePool 填充 NSMutableArray(为 iphone 3g 释放一些内存的一部分),我得到了一个 40+ mb 的数组。

然后,我使用以下命令:

在更新过程中,我获得了 40/50 Mb 的内存分配。Iphone 3g 无法处理这个问题,它以 1 级警告惨遭失败并最终退出。

我在 iphone 3GS 上试过,效果很好。

有谁知道如何跳过它?我不能使用核心数据(尽管它是一个很好的解决方案),因为我已经有一个与应用程序捆绑在一起的大型数据库。

0 投票
2 回答
805 浏览

iphone - 如何在 FMDB Sqlite 中复制 FMResultset

我试图从一个方法返回 FMResult 对象的引用,并试图从返回的对象中访问值,但无法访问。

那么任何人都可以建议如何从方法返回 FMResult 对象并从外部访问它。

提前致谢.....