NSString*docsdir=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];NSString*dbpath=[docsdirstringByAppendingPathComponent:@"user.sqlite"];FMDatabase*db=[FMDatabasedatabaseWithPath:dbpath];[dbopen];FMResultSet*rs=[dbexecuteQuery:@"select * from people"];while([rsnext]){NSLog(@"%@ %@",[rsstringForColumn:@"firstname"],[rsstringForColumn:@"lastname"]);}[dbclose];
FMResultSet*s=[dbexecuteQuery:@"SELECT * FROM myTable"];while([snext]){//retrieve values for each record}FMResultSet*s=[dbexecuteQuery:@"SELECT COUNT(*) FROM myTable"];if([snext]){inttotalCount=[sintForColumnIndex:0];}
// 创建,最好放在一个单例的类中FMDatabaseQueue*queue=[FMDatabaseQueuedatabaseQueueWithPath:aPath];// 使用[queueinDatabase:^(FMDatabase*db){[dbexecuteUpdate:@"INSERT INTO myTable VALUES (?)",[NSNumbernumberWithInt:1]];[dbexecuteUpdate:@"INSERT INTO myTable VALUES (?)",[NSNumbernumberWithInt:2]];[dbexecuteUpdate:@"INSERT INTO myTable VALUES (?)",[NSNumbernumberWithInt:3]];FMResultSet*rs=[dbexecuteQuery:@"select * from foo"];while([rsnext]){// …}}];// 如果要支持事务[queueinTransaction:^(FMDatabase*db,BOOL*rollback){[dbexecuteUpdate:@"INSERT INTO myTable VALUES (?)",[NSNumbernumberWithInt:1]];[dbexecuteUpdate:@"INSERT INTO myTable VALUES (?)",[NSNumbernumberWithInt:2]];[dbexecuteUpdate:@"INSERT INTO myTable VALUES (?)",[NSNumbernumberWithInt:3]];if(whoopsSomethingWrongHappened){*rollback=YES;return;}// etc…[dbexecuteUpdate:@"INSERT INTO myTable VALUES (?)",[NSNumbernumberWithInt:4]];}];