我使用以下代码获取列
中的最大值第11栏(代码中10表示否) 列名称uniqueColumnSNo Column -integer的数据类型。
我对dbhanlder使用的语法感到困惑。
这是代码。 只是让我知道,我将如何从指定列返回最大值。 救命。提前致谢。
+(int)的getMaxColumnSNo {
NSInteger favid;
int count=0;
sqlite3 *database;
NSString *dbpath;
dbpath = [dbhandler dataFilePath:DbName];
if (sqlite3_open([dbpath UTF8String], &database) == SQLITE_OK)
{
NSString *selectSql = [NSString stringWithFormat:@"SELECT max(uniqueColumnSNo) FROM CustomerFields"];
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [selectSql cStringUsingEncoding:NSUTF8StringEncoding], -1, &statement, NULL) == SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
//[result addObject:[[NSMutableDictionary alloc] init]];
favid=(NSInteger)sqlite3_column_int64(statement,10);
//favid = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 10)] intValue];
count++;
}
sqlite3_finalize(statement);
}
else
{
NSLog(@"Sql Preparing Error");
}
sqlite3_close(database);
}
else
{
NSLog(@"Database not opening");
}
int i;
if (count!=0) {
i=favid ;
}
else {
i=1;
}
return i;
//return favid;
}
答案 0 :(得分:2)
你需要:
sqlite3_column_int64( statement, 0 );
列号参数是结果集的索引,而不是原始表列号的索引。结果集中唯一的列是max(uniqueColumnSNo),因此这是列索引号0.