jjzjj

iOS sqlcipher fmdb inTransaction “File is encrypted or is not a database”

当我使用sqlcipher加密我的数据库,并调用FMDatabaseQueue中的inDatabase——成功!但是当我将inDatabase更改为inTransaction时,控制台显示“文件已加密或不是数据库”。代码:FMDatabaseQueue*queue=[FMDatabaseQueuedatabaseQueueWithPath:st_dbPath];//success[queueinDatabase:^(FMDatabase*db){[dbsetKey:st_dbKey];[dbexecuteUpdate:@"INSERTINTOt_userVALUES(16)"];}];

ios - FMDB:在 iOS 应用程序的整个生命周期中保持开放数据库好吗?

我对FMDB包装类的数据库打开和关闭操作感到困惑。如果我在AppDelegate类的applicationDidFinishLoading方法并且在应用程序终止之前不要关闭?谢谢。 最佳答案 除非您更改架构,否则没有理由关闭它。所以保持开放。 关于ios-FMDB:在iOS应用程序的整个生命周期中保持开放数据库好吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14456457

swift - 无法访问 fts4 虚拟表 - SQLite 数据库错误 : 1 "no such table:"

我对编程很陌生,如果这是一个愚蠢的问题,我深表歉意。我想在iOS上制作一个字典应用程序,我想为此使用fts4表。我使用SQLite和FMDB。所以,我创建了一个虚拟表,但是当我试图在其中查找任何内容时,我得到一个异常,它不存在。怎么了?我试图在创建虚拟表后立即进行搜索,而没有编写两个不同的函数,但仍然出现异常。代码如下:letdb:FMDatabaseletresourcePath=NSBundle.mainBundle().resourceURL!.absoluteStringletdbPath=resourcePath?.stringByAppendingPathComponent

macos - OSX Swift 项目中的 FMDB -> 许多错误

我已经在我的Swift项目中添加了FMDB并遵循了FMDBSwift说明(即复制相关的.h/m.文件并创建桥接header,包括import语句)。当我尝试编译时,我遇到了一大堆错误,都是AppleMatch-O-Linker错误...Undefinedsymbolsforarchitecturex86_64:"_sqlite3_bind_blob",referencedfrom:-[FMDatabasebindObject:toColumn:inStatement:]inFMDatabase.o"_sqlite3_bind_double",referencedfrom:-[FMDat

ios - 在 Swift 中使用 FMDB 回滚事务

所以我尝试在Swift中使用FMDB。就桥接头等而言,我已经把所有东西都连接好了,但我终究无法弄清楚如何在FMDatabaseQueue类中使用事务。具体来说,我不明白回滚事务的语法。我已经尝试了下面的代码,但它产生了一个编译时错误'UnsafeMutablePointer'doesnothaveamembernamed'initialize'我确信这与将指针传递到闭包中以进行回滚这一事实有关,但据我所知,您无法重新分配传递给闭包的变量,所以我不确定我是如何做到的我想设置指针以指示需要回滚。ifletqueue=FMDatabaseQueue(path:DB_PATH){queue.i

swift - Sqlite - 如何在 Swift 中检索 DATETIME 字段?

我正在尝试使用以下代码从SQLite数据库中检索名为TIMESTAMP的DATETIME字段:letdateFormatter=NSDateFormatter()dateFormatter.dateFormat="yyyy-MM-ddHH:mm:ss"vard1:NSDate=NSDate()ifgetData.dictLocations["TIMESTAMP"]!=nil{d1=dateFormatter.dateFromString(getData.dictLocationsNames["TIMESTAMP"]!)!}else{dateCreatedLabel.text="FAIL

ios - FMDB:SQLite 语句 ORDER BY 命令变音符号不正确

我是iOS开发的新手,有很多东西需要学习。它就像一座大山,但多亏了你的帮助,我才找到了位置;)我已经启动了一个Xcode项目(Xcode版本6.1.1、Swift、iOS)并包含了FMDB以运行SQLite查询。查询执行得很好,但是在以下语句中:varresultSet:FMResultSet!=sharedInstance.database!.executeQuery("SELECT*FROMspesenValuesORDERBYcountryASC",withArgumentsInArray:nil)从我的角度来看,字母顺序是错误的,但我似乎不知道如何解决它。标准的A-Z字符被排序

sqlite - 使用 swift + FMDB 插入 NULL

如何使用swift将NULL插入到列中letmyNullableValue:Double?=nilfmdb.executeUpdate("INSERTINTOmyTable(myNullableColumn)SELECT:myNullableValue",withParameterDictionary:["myNullableValue":myNullableValue]) 最佳答案 来自FMDB源代码https://github.com/ccgus/fmdb/blob/master/src/fmdb/FMDatabase.m-(v

ios - 使用 Swift + FMDB 打开和关闭数据库

使用Swift+FMDB打开和关闭sqlite数据库连接的推荐方法是什么?我正在关注这个tutorial这表明您应该像这样打开和关闭数据库:letdb=FMDatabase(path:databasePathasString)ifdb.open(){//dostuffdb.close()在我使用过的其他语言中,在finallyblock之外关闭数据库将是一个危险信号。我知道swift/iOS异常处理与大多数语言和开发环境不同。但我仍然担心这仍然是关闭数据库连接的一种非常不安全的方式。这种关闭数据库的方法真的安全并值得推荐吗?我应该使用类似SwiftTryCatchFinally的东西吗

swift - FMDatabase + swift + 参数数量未定义的请求

我正在尝试通过Swift类向FMDB发送请求。这是有效的:self.database.executeQuery("SELECT*FROMfoodsWHEREid=?",withArgumentsInArray:[anID])因为我使用了方法executeQuery(sql,withArgumentsInArray)但我不知道如何使用带有未定义参数数量的经典方法,而不是带有数组的方法:self.database.executeUpdate(,withVAList:)我不知道如何在withVAList中写我的论点。 最佳答案 我的解决方