该函数实例用于 查询(query)结果的筛选,返回当前结果的某1列。
常用函数为:
int sqlite3_column_int(sqlite3_stmt*, int iCol);
double sqlite3_column_double(sqlite3_stmt*, int iCol);
const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
参数:
sqlite3_stmt* : 准备结构参数指针。
iCol:要查询的"列"索引值。sqlite3规定最左侧的“列”索引值是 0,也就是“列”索引号从 0 开始。
返回: 根据函数类型,返回相应的数据,比如int型,double型(浮点数也是),text(字符串型)。。。等。
代码示例:
假设表的字段结构为:person(name,age,sex),数据库指针为 pdb。
sqlite3_stmt *pstmt;
const char *sql = "SELECT* FROM person;";
nRet = sqlite3_prepare_v2(pdb, sql, strlen(sql), &pstmt, &pzTail);
while(sqlite3_step( pstmt ) == SQLITE_ROW){
nCol = 0;
pTmp = sqlite3_column_text(pstmt, nCol++);
printf("%s|", pTmp);
age = sqlite3_column_int(pstmt, nCol++);
printf("%d|", age);
pTmp = sqlite3_column_text(pstmt, nCol++);
printf("%s\n", pTmp);
//注意,这里就不能够运行 sqlite3_reset(pstmt); 因为查询命令会循环返回所有的数据,
//每次返回一次 SQLITE_ROW,
//如果我们重置pstmt,相当于终止了查询结果。
}
sqlite3_finalize(pstmt);