删除方法有问题
Closed this issue · 6 comments
不能正常删除
根据pid删除失败的问题已解决,其他几个删除方法是好用的。
更新了DEMO,你可以试一下。
请问第一次建表插入数据出现如下错误是什么原因,如果我把APP重启又可以正常地存储了
DB Error: 1 "no such table: ZQBasePlayerModel"
2016-03-11 16:20:50.574 SporterMan[14464:268791] DB Query: INSERT INTO ZQBasePlayerModel(name,isPlaying,number) VALUES (?,?,?);
2016-03-11 16:20:50.574 SporterMan[14464:268791] 插入失败
能把具体代码贴出来吗?我这里并没有你说的情况。
你好,是这样的,我用的是JKDBModel这个第三方,嘻嘻,但我觉得原理是差不多的,这是这个库的代码,就是 id value = [self valueForKey:proname];这段代码出来的值是null,能麻烦你帮我看看嘛,谢谢!
NSString *tableName = NSStringFromClass(self.class);
NSMutableString *keyString = [NSMutableString string];
NSMutableString *valueString = [NSMutableString string];
NSMutableArray *insertValues = [NSMutableArray array];
for (int i = 0; i < self.columeNames.count; i++) {
NSString *proname = [self.columeNames objectAtIndex:i];
if ([proname isEqualToString:primaryId]) {
continue;
}
[keyString appendFormat:@"%@,", proname];
[valueString appendString:@"?,"];
id value = [self valueForKey:proname];
if (!value) {
value = @"";
}
[insertValues addObject:value];
}
[keyString deleteCharactersInRange:NSMakeRange(keyString.length - 1, 1)];
[valueString deleteCharactersInRange:NSMakeRange(valueString.length - 1, 1)];
JKDBHelper *jkDB = [JKDBHelper shareInstance];
__block BOOL res = NO;
[jkDB.dbQueue inDatabase:^(FMDatabase *db) {
NSString *sql = [NSString stringWithFormat:@"INSERT INTO %@(%@) VALUES (%@);", tableName, keyString, valueString];
res = [db executeUpdate:sql withArgumentsInArray:insertValues];
self.pk = res?[NSNumber numberWithLongLong:db.lastInsertRowId].intValue:0;
NSLog(res?@"插入成功":@"插入失败");
}];
return res;
我是这样来存储的
//插入多条用户数据
dispatch_queue_t q1 = dispatch_queue_create("queue1", NULL);
dispatch_async(q1, ^{
if ([data[0] count] > 0) { // 有数据才添加
for (int i=0; i<data.count; i++) {
self.focusData = [[ZQFocusData alloc] init];
self.focusData = [ZQFocusData objectWithKeyValues:data[i]];
//保存到数据库
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[self.focusData save];
});
}
}
});
在 2016年3月11日,下午9:17,Bing notifications@github.com 写道:
能把具体代码贴出来吗?我这里并没有你说的情况。
—
Reply to this email directly or view it on GitHub #2 (comment).
首先你是不应该去JKDBModel 哪里提问?
看了你的代码应该是插入在创建表之前执行了导致无法插入,去掉save的
dispatch_async方法试试
我试了下你的FMDataTable可以很好的存储,暂时解决了这个问题,关于JKDBModel我看到别人也出现了这个问题,我问JKDBModel的作者没回复我,我还去问了FMDB的开发者,人家说我的存储方法有问题,我也不知道咋办了,只能换一个方法了,感谢你!
在 2016年3月12日,上午8:14,Bing notifications@github.com 写道:
首先你是不应该去JKDBModel 哪里提问?
看了你的代码应该是插入在创建表之前执行了导致无法插入,去掉save的
dispatch_async方法试试—
Reply to this email directly or view it on GitHub #2 (comment).