保存到NSDocument目录的下载的sqlite数据库不能使用FMDB更新?

时间:2014-02-06 23:43:30

标签: ios sqlite fmdb

**更新* * 我发现数据库没有在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设备上没有。我没有保存在应用程序包中,所以我不明白。

请帮助。

如果需要,示例代码会有所帮助,谢谢。

0 个答案:

没有答案