0
这里是我用来插入一个记录到表中的代码...我需要的是这个函数来捕获和返回插入的记录ID ...这可能吗?此代码工作正常,并成功插入返回YES和NO的失败......但我现在想返回一个整数插入ID ...但不能似乎想出一个办法......返回插入ID后sqlite3_finalize
-(BOOL)insertEvent:(Event *)objEvent { Utils *objUtils = [[Utils alloc] init];
sqlite3_stmt *insertStmt = nil;
sqlite3 *aDatabase = nil;
int ret = sqlite3_enable_shared_cache(1);
if (sqlite3_open([databasePath UTF8String], &aDatabase) == SQLITE_OK)
{
if(insertStmt == nil)
{
NSString *aString = [NSString stringWithFormat:@"INSERT INTO tblEvent ('eventstartdate','eventdescription') VALUES ('%@','%@')",objEvent.eventstartdate, objEvent.eventdescription];
const char *sql = [aString UTF8String];
if(sqlite3_prepare_v2(aDatabase, sql, -1, &insertStmt, NULL) != SQLITE_OK)
{
NSAssert1(0, @"Error while creating insertTip add statement. '%s'", sqlite3_errmsg(aDatabase));
return NO;
}
[objUtils release];
}
if(SQLITE_DONE != sqlite3_step(insertStmt)) {
NSAssert1(0, @"Error while inserting into TipsTracker. '%s'", sqlite3_errmsg(aDatabase));
return NO;
}
sqlite3_reset(insertStmt);
if (insertStmt)
{
sqlite3_finalize(insertStmt);
insertStmt = nil;
}
}
sqlite3_close(aDatabase);
aDatabase = nil;
return YES;}
嗯..当我尝试调用它时会得到EXE_BAD_ACCESS .. – xoail 2011-04-30 06:08:08
你需要改变数据库对象“aDatabase”你是否在做“数据库”? – Saurabh 2011-04-30 06:09:51
没关系...我在NSLog(@“%@”,...)中打印它,但不得不做NSLog(@“%lld”,..)...感谢xcode4的良好推荐:) – xoail 2011-04-30 06:13:57