//開始使用建立的資料庫
//資料庫建在 /tmp 裡,如果沒有 tmp.db,應該會自己建一個
FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];
if (![db open]) { //一定要 [db open] 喔!! 不然出的錯不好抓
NSLog(@"Could not open db.");
}
else {
// kind of experimentalish.
[db setShouldCacheStatements:YES];
[db executeUpdate:@"CREATE TABLE IF NOT EXISTS test (idx INTEGER PRIMARY KEY AUTOINCREMENT, date TEXT, stepcounter INTEGER, calorie DOUBLE, hour INTEGER, minutes INTEGER, second INTEGER)"]; //隨便建一個資料表的命令
[db executeUpdate:@"INSERT INTO test (idx, date) VALUES (?, ?)",nil,@"2011-01-15"];
//順便寫一段可以作 Transaction 的方法
[db beginTransaction];
[db executeUpdate:@"UPDATE test SET second = ? WHERE date = ?",
[NSNumber numberWithInt:5],
@"2011-01-15"];
[db commit];
FMResultSet *rs = [db executeQuery:@"SELECT rowid,* FROM userTable WHERE date=?", @"2011-01-15"]; // 這裡前面有一個 rowid ,不加能不能 select 到我就沒去試了
while ([rs next]) { //[rs next]一定要有喔!! 不然程式編起來不會有錯,可是抓的值都不對
int a = [rs intForColumn:@"second"];
//..... 其他值的抓法都跟上面差不多,偷懶的我就省略了
}
[rs close]; //rs用完要記得 close
//另外還有下面這種寫法也可以抓到值
int b = [db intForQuery:@"SELECT second FROM userTable WHERE date=?", @"2011-01-15"];
...
}
[db close]; // db用完也要記得 close