【发布时间】:2015-06-05 15:27:56
【问题描述】:
这是我用来将记录插入到 sqlite 表中的代码
FMDatabase *dataBase = [self openDatabase];
[dataBase open];
if ([dataBase open] != YES) {
NSLog(@"DB Error %d: %@", [dataBase lastErrorCode], [dataBase lastErrorMessage]);
//VERY IMPORTANT
}
BOOL success= [dataBase executeUpdate:@"Insert into CrewUnits (pkCrewUnits,fkUnits,fkAgencyVehicles,fkLookupCodes_PrimaryRole, fkLookupCodes_LevelOfCare, PrimaryUnit) values (?, ?, ?, ?, ?, ?);", pkCrewUnits, fkUnits, fkAgencyVehicle, fkLookupCodes_PrimaryRole, fkLookupCodes_LevelOfCare, [NSNumber numberWithInt:1]];
NSLog(success ?@"YES" :@"NO");
NSLog(@"Error %d: %@", [dataBase lastErrorCode], [dataBase lastErrorMessage]);
FMResultSet*resultSet= [dataBase executeQuery:@"select * from CrewUnits"];
NSLog(@"ResultSet : %@", [resultSet resultDictionary]);
[dataBase close];
数据库路径
- (FMDatabase *)openDatabase
{
NSLog(@"Open Database");
NSString *documents_dir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *db_path = [documents_dir stringByAppendingPathComponent:[NSString stringWithFormat:@"HPSix_05BD.db"]]; // DatabasePath
FMDatabase *db = [FMDatabase databaseWithPath:db_path];
if (![db open])
NSLog(@"Failed to open database!!!!!");
return db;
}
我使用相同的逻辑从适合我的表中获取数据。但我无法插入记录。我不知道我在这里做错了什么。
【问题讨论】:
-
您是否收到错误或异常? pkCrewUnits、fkUnits、fkAgencyVehicle、fkLookupCodes_PrimaryRole、fkLookupCodes_LevelOfCare 都是对象而不是简单类型吗?
-
错误 0:不是错误
-
它们实际上是 GUID,因为 sqlite 不支持 GUID,它们是字符串。 @edwardmp