sqlite3:sqlite3_column 函数

    该函数实例用于 查询(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);

 

你可能感兴趣的:(SQLite)