iPhone 上的 SQLite 数据库

Posted

技术标签:

【中文标题】iPhone 上的 SQLite 数据库【英文标题】:SQLite database on iPhone 【发布时间】:2013-10-23 08:14:42 【问题描述】:

您好,我正在使用 FMDB 来使用 SQLite 数据库。我有下一个代码:

FMDatabase *db = [FMDatabase databaseWithPath:@"stories_db.sqlite"];
[db open];
FMResultSet *resultsFavorite = [db executeQuery:@"SELECT * from favorites"];

但是[db open]上显示错误;

2013-10-23 11:08:22.951 Pasakas[1013:a0b] 错误打开!:14

也许我应该改变路径?

【问题讨论】:

【参考方案1】:

您必须提供数据库的路径而不是数据库的名称,

试试

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"stories_db.sqlite"];

FMDatabase *db = [FMDatabase databaseWithPath:path];
[db open];
FMResultSet *resultsFavorite = [db executeQuery:@"SELECT * from favorites"];

【讨论】:

+1 但在此之前……您必须将本地数据库文件复制到文档目录……太好了…… 2013-10-23 11:20:24.211 Pasakas[1093:a0b] DB 错误:1“没有这样的表:收藏夹”2013-10-23 11:20:24.212 Pasakas[1093:a0b ] DB Query: SELECT * from favorites 2013-10-23 11:20:24.213 Pasakas[1093:a0b] DB Path: /Users/artjomsfomenko/Library/Application Support/iPhone Simulator/7.0/Applications/645A59FD-1667-4A4B- 8B24-EF87C2A3D271/Documents/stories_db.sqlite CREATE TABLE "offline" ("_id" TEXT PRIMARY KEY NOT NULL UNIQUE , "story_name" TEXT NOT NULL , "video_path" TEXT, "image_path" TEXT)

以上是关于iPhone 上的 SQLite 数据库的主要内容,如果未能解决你的问题,请参考以下文章

当 iPhone 的 Appstore 上的应用程序版本更改时,sqlite 数据库更新

iPhone/Sqlite - 如何仅从服务器获取更改的数据?

在 iPhone 上使用 SQLite 数据库的空间请求

iPhone 上的最佳 SQLite 实践 [关闭]

Iphone 编程 - 将现有的 sql 表导入到 sqlite 或核心数据

iphone - 桌面上的SQLite记录不会出现?