我的表USER包含列ID,NAME和ADDRESS。 e.g。
列ID为1,2 NAME列有Bob,Jane 列ADDRESS有英国,美国
我希望遍历所有记录并将每列保存到数组中。结果将是这样的:
char * NAME [2]; NAME [0]将拥有“Bob”,NAME [1]拥有“Jane”和
char * ADDRESS [2]; ADDRESS [0]会有“UK”,ADDRESS [1]会有“US”。
有人能指出我正确的方向而不是为每个数组条目调用SQL语句吗?
提前致谢!
答案 0 :(得分:0)
如果您从链接到的教程中的SELECT示例开始,则可以将其修改为
struct results {
size_t num_used;
char* NAME[SOME_MAX_NUMBER_OF_ROWS_HERE];
char* ADDRESS[SOME_MAX_NUMBER_OF_ROWS_HERE];
};
然后在堆栈中有一个(num_used设置为0)并将指针传递给sqlite3_exec
的参数4。在callback
中,然后将参数1转换为指向struct results
的指针,将strdup
字段转换为results->NAME[results->num_used]
等,并在结尾处增加results->num_used
。当sqlite3_exec
返回时,您应该填写NAME
和ADDRESS
数组。
当然有更好的方法来处理数组,因此您不必预测最大行数等,但这是一个不同的问题。