对于FMDatabase的使用,在查询这方面遇到了一点问题,想了很久还是没有想出个所以然来,希望各位大大能给点提示!问题如下: //FMDatabase *db;db在头文件中声明的,是一个FMDatabase对象,能确定的是我的数据库里的coupon_table里是有数据的 FMResultSet *rs = [db executeQuery:@”select %@ from coupon_table”,column]; NSLog(@”rs = %@”,rs); while ([rs next]) { [result addObject:[rs stringForColumn:column]]; } 调用这个函数是在另一个文件夹中: 我也试过用FMResultSet *rs = [db executeQuery:@”select ? from coupon_table”,column];这种形式,这样的话,rs能指向正确的内存位置,但是执行到[result addObject:[rs stringForColumn:column]];就crash掉了。不知道你们是否遇到过这种情况,求帮助呀! |
|
![]() 40分 |
FMResultSet *rs = [db executeQuery:@”select %@ from coupon_table”,column];
个人感觉这句话有问题,可不可以先: NSString *sql = [NSString stringWithFormat:@”select %@ from coupon_table”, column]; 没用过fmdatabase, 所以不知道executeQuery这个方法支持不支持你写的fomart形式,仅提供个思路!祝楼主早日解决问题! |
![]() |
谢谢,好像真没有这样用的,现在我就只能把它写死了。虽然这样不好,但是没办法,只能先凑合着了!
|
![]() |
不用写死了吧,
NSString *sql = [NSString stringWithFormat:@”select %@ from coupon_table”, column]; 像这样就可以的吧 |
![]() |
试用了一下fmdatabase,
你这里FMResultSet *rs = [db executeQuery:@”select ? from coupon_table”,column];这种形式要改成: FMResultSet *rs = [db executeQuery:@”select ? from coupon_table”,column, nil]; 这样就可以了 |
![]() |
谢谢!
|
![]() |
大哥,为什么很多方法后面跟的参数要加nil啊?
|
![]() |
因为这个接口时多参数的,你需要加上nil 作为结束符
|