fmdb -> intForQuery

25 篇文章 0 订阅

    //開始使用建立的資料庫

    //資料庫建在 /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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值