基于C的函数sqlite3_prepare_v2
返回 1。我只是想以可读的形式了解错误消息并更正我的代码。我是从 raywinderlich 博客中将其作为教程学习的。我遇到过sqlite3_errmsg
我不知道如何使用sqlite3_errmsg
功能。
虽然有人问了同样的问题here https://stackoverflow.com/questions/24286259/sqlite3-prepare-v2-failing,不幸的是仍然没有答案。
我想知道错误和纠正将不胜感激。谢谢。
- (NSArray *)failedBankInfos {
NSMutableArray *retval = [[NSMutableArray alloc]init];
NSString *query = @"SELECT id, name, city, state FROM failed_banks ORDER BY close_date DESC";
sqlite3_stmt *statement;
int tmp = sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil);
NSLog(@"%i",tmp); // printing 1
if (sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil)
== SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
int uniqueId = sqlite3_column_int(statement, 0);
char *nameChars = (char *) sqlite3_column_text(statement, 1);
char *cityChars = (char *) sqlite3_column_text(statement, 2);
char *stateChars = (char *) sqlite3_column_text(statement, 3);
NSString *name = [[NSString alloc] initWithUTF8String:nameChars];
NSString *city = [[NSString alloc] initWithUTF8String:cityChars];
NSString *state = [[NSString alloc] initWithUTF8String:stateChars];
NSLog(@"name is : %@",name);
NSLog(@"city is : %@",city);
FailedBankInfo *info = [[FailedBankInfo alloc]
initWithUniqueId:uniqueId name:name city:city state:state];
[retval addObject:info];
}
sqlite3_finalize(statement);
}
else
{
// if part is failing and control is arriving in else.
}
return retval;
}