2010-07-10 96 views
0

好吧,我明白fmdb完全过时了,核心数据就是它的位置,但现在,我只需要调整我正在使用fmdb从资源文件夹中的sqlite数据库读取的应用程序。使用fmdb写入sqlite数据库?

我需要能够写入我的数据库。什么是执行查询的最佳方式?我曾尝试这样做,我从数据库读取相同的事情:

FMResultSet * set = [[UIApp database] executeQuery:[customQueries selectAll], book]; 

如果我改变从一个SELECT语句中的字符串全选应运而生INTO语句INSERT和我通过它的可变书插入,但似乎并没有工作...

我错过了什么?我需要做什么才能写入我的sqlite数据库?谢谢!

+2

'fmdb'没有过时,它正在积极开发中。 ;) – Pascal 2010-11-26 12:08:28

回答

2
FMDatabase* db = [FMDatabase databaseWithPath:dbPath]; 

FMResultSet *rs = [db executeQuery:@"select * from table"]; 
while ([rs next]) { 
    NSLog(@"%d", [rs intForColumn:@"id"]; 
} 

// Close the result set. 
[rs close]; 

// Close the database. 
[db close]; 
+0

您忘记打开您的数据库,但否则它仍然不正确,因为它们要求插入和更新数据库的方式,而不是选择数据记录。 – 2011-12-05 17:25:21

5

要插入你会做这样的事情,其中​​db是您FMDatabase参考:

[db executeUpdate:@"insert into theTable (field1, field2) values(?, ?)", 
    theField1, theField2, nil]; 

确保没有在参数列表的末尾(2问号零查询意味着两个参数和一个零),并确保您使用NS类型作为参数。如果你尝试使用int作为参数,它会崩溃,你需要改用NSNumber。