问题标签 [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.
iphone - FMDB 未插入数据库
我正在尝试使用 FMDB 将一些查询插入数据库。
当我检查插入查询时,它说它正在插入。
后来我实际上可以从表格中读取数据。
但是发生的情况是,如果我尝试从数据库中读取信息,它会返回为空。
当我在 Xcode 项目中检查数据库时,似乎没有更新。
这让我有点困惑。任何建议可能是什么问题?
iphone - 来自 Sqlite (FMDB) 的 UITableView 中的部分和索引
我正在尝试UITableView
从 Sqlite 获取部分和索引(我使用 FMDB 作为包装器)。
我似乎不知道从哪里开始。
我可以从数据库中读取信息并将其存储在NSMutableArray
.
我尝试了以下站点,但他使用的是 plist。 http://www.icodeblog.com/2010/12/10/implementing-uitableview-sections-from-an-nsarray-of-nsdictionary-objects/
任何意见,将不胜感激。
sqlite - 从 fmdb 访问 CoreData 表
我在我的 DML 语句应用程序中使用 CoreData,一切都很好。但是我不想将 NSFetchedResultsController 用于简单的查询,比如获取行数等。
我决定使用 fmdb,但不知道实际的表名来编写 sql。实体和表名不匹配。我什至用 TextEdit 查看了 .sqllite 文件,但没有希望 :) FMResultSet *rs = [db getSchema] 不返回任何行
也许对我的问题有更好的解决方案?
提前致谢
ios - FMDB executeUpdate DROP 命令确实会停止应用程序
我想在名为 database.db 的 SQLite 数据库文件中删除一个表。使用后
应用程序停在查询的位置。查询之前的 NSLog 显示在控制台中。查询后直接的 NSlog 不会显示在控制台窗口中。此外,在应用程序运行时,会在模拟器应用程序文件夹中不断创建和删除一个名为 database.db-journal 的临时文件。该应用程序不会崩溃,不会给出任何错误并且不会继续...删除查询中的“IF EXISTS”不起作用,删除反引号不起作用,删除分号不起作用。
启用查询跟踪仅显示 FMDB 正在处理我的查询,没有更多显示。
我真的很困惑为什么会这样。我认为该表必须为空才能删除,因此我添加了一个查询以删除其中的每条记录。但是 id 无关紧要,该应用程序仍然会在 drop-query 中被捕获。我没有解决此错误的可能性。
如果我在 SQLite Database Browser 2 中执行 drop 命令,一切正常。
对调试器的进一步研究表明,FMDB 包装器将进入无限循环,因为该语句的返回值等于 SQLITE_LOCKED 常量,这意味着我要删除的表已锁定。在之前的查询中发送“UNLOCK TABLES”并不能解决这个问题。为什么桌子被锁住了?为什么从锁定的表中删除记录会起作用?
iphone - 在数据库 (FMDB) 加载 iPhone 时显示初始屏幕 (UIViewController)
我的申请有点问题。
我有 WebServices 接收信息而不是解析它并将信息存储在数据库中。
我想要的是在所有信息上传到数据库之前显示我的启动屏幕(或 UIViewController)(FMDB 是我正在使用的数据库)。
目前我的屏幕加载了一段时间,然后被删除。我正在使用的代码是:
[self performSelector:@selector(removeSplashScreen) withObject:nil afterDelay:30];
问题是某些信息已加载到数据库中,而其他信息则没有。
任何人都可以给我有关如何解决此问题的提示。
注意:启动画面并不是真正的启动画面(即 Default.png),这只是UIViewController
在启动画面之后显示的,我只是将其称为启动画面。
谢谢
iphone - SQLite:如何设置 ID PK 从零开始而不是从 1 开始?
是否可以将默认起始值设置为零而不是 1?目前我正在使用 FMDB 但想知道这是否可能......
iphone - 在 iphone SQLite (FMDB) 中加载 10k+ 行
我正在创建一个字典应用程序,我正在尝试将这些术语加载到 iphone 字典中以供使用。这些术语是从此表(SQLite)中定义的:
使用规范化是因为我用希腊语写作,并且我在 sqlite 引擎上没有用于搜索变音符号的 icu,所以我正在制作一个 termtext 变音符号/不区分大小写。它也是主要的搜索字段,与可能是“视图”字段的 termtext 形成对比。
我已经定义了一个这样的类(如 POJO):
条款.h
条款.c
现在在我的代码中,我使用FMDB作为SQLite数据库的包装器。我使用以下代码加载条款:
然后将整个 termResults 加载到UITableView(在 viewdidload 上),但每次启动我的应用程序时加载最多需要 5 秒。有什么方法可以加快这个过程吗?我在SQLite上索引了 id、termText 和规范化。
*** 更新:添加了 cellForRowAtIndexPath ***
iphone - 在同一个后台线程上运行 FMDB 进程?
我在使用 fmdb 将数据读取和写入同一数据库时遇到问题。
在我的应用程序中,有一个类会在后台线程上将数据写入数据库,而另一个类会在主线程上从同一个数据库中读取数据,读写进程都处理相当大的数据,比如几百个 NSDictionary .
我听说 fmdb 不是“线程安全的”,当我在上述场景中尝试读写时,它会使我的应用程序崩溃。我还听说过在同一线程上运行 2 个 fmdb 进程的建议,这样应用程序就不会崩溃。
我已经尝试在后台线程中运行它们(使用 NSInvocationOperation)但它崩溃了,我意识到它们实际上是在导致冲突的单独后台线程上运行。
所以问题是,我怎样才能让所有的 fmdb 进程在同一个后台线程上运行,这样它们就不会让我的应用程序崩溃?
或者有没有其他方法可以处理我的 SQL 数据?
*对不起,如果我没有解释清楚,愿意澄清。
谢谢阅读!
iphone - 我的 iOS 应用在 iOS 5 上运行非常缓慢,可能是什么原因?
好的,我有一个简单的阅读器应用程序,我在商店里已经有一段时间了,而且效果很好。我有一个内容的 sqlite db,我使用 fmdb 与之交谈。我加载我的文本并将其显示在 UIWebView 中。很简单的东西。
当 iOS 5 上线时,我开始收到关于应用程序运行不正常的电子邮件。果然,它运行得很慢。我有一个 UISegmentedControl 可以在章节之间切换,它实际上会在执行任何操作之前将 UI 冻结 10 秒。还有其他一些情况就是这种情况。
到底是怎么回事?该应用程序在技术上仍然可以运行,但速度太慢以至于无法使用。有没有其他人看过这个?有人对可能发生的事情有任何想法吗?
iphone - FMDB 中的 moveToRow() 和 rowCount()?
我的应用在 .sqlite 文件中有 3,000 个考试题。并且这些问题是根据用户的需求动态选择和排序的(例如,“按错误答案计数排序”、“仅选择未访问的问题”)。
每当用户进行选择时,应用程序都会执行相应的 SQL 语句,并通过使用 sqlite3,将所有结果集发送到 NSMutableArray(问题类)。但正如您将注意到的,这是一个耗时的过程(大约 2~3 秒,并且 UI 在此过程中停止响应)。
所以我想创建一个具有 rowCount() 和 moveToRow(int index) 方法的“光标”类。
有了这个,我的想法是
像这样。
我知道 CoreData 适合这个目的,但我需要与这个应用程序的 android 版本共享 .sqlite 文件。CoreData 要求所有表名和字段名都以 Z_ 前缀开头,但我无法修改 .sqlite 文件的方案。我还需要使用 sqlcipher,而 CoreData 不能与 sqlcipher 一起使用。
FMDB 不支持提供检索行计数并移动到特定行的方法。
是否有任何其他支持此功能的 SQLite 包装库?
有人建议制作一个“目录”数组,其中只包含检索到的行的 id,并在每次调用 moveToRow() 时获取行。我同意这是一个很好的选择,但我想找到另一种方法。