的 的 **更新* * 我发现数据库没有在ios设备中打开。(仅用于更新??但它适用于select语句)
它将在类似物中打开。
我正在为SQlite使用FMDB包装器。一切都在模拟器中正常工作。在iOS设备上,数据库不会更新。
我像这样下载数据库并将其保存到以下位置:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"ARCdb.sqlite"];
[responseData writeToFile:writableDBPath atomically:YES];
NSLog(@"DB written");
[connection cancel];
}
我可以使用FMDB从数据库中读取没有问题,但是当我尝试使用此代码更新它时:
// OPEN DB
-(void)openDB
{
NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [docPaths objectAtIndex:0];
NSString *dbPath = [documentsDir stringByAppendingPathComponent:@"ARCdb.sqlite"];
database = [FMDatabase databaseWithPath:dbPath];
[database open];
}
// UPDATE DB
[self openDB];
[database executeUpdate:@"UPDATE inventory SET CompanyID = ?, UserID = ?, Scanned = ?, SignedByName = ?, SignedByFileName = ? where BottleID = ?", customerIDPass, UserIDPass, @"1", signedby, filePath, [bottleIDPassFinal objectAtIndex:a], nil];
}
[database close];
就像我说的在模拟器中工作但在ios设备上没有。我没有保存在应用程序包中,所以我不明白。
请帮助。
如果需要,示例代码会有所帮助,谢谢。