C:遍历SQLite记录,并将每个值赋给一个变量

C:遍历SQLite记录,并将每个值赋给一个变量,sql,c,sqlite,variables,Sql,C,Sqlite,Variables,我有一个列ID、名称和地址的表USER。e、 g 列ID为1,2 列名为Bob,Jane 列地址为英国、美国 我希望遍历所有记录,并将每列保存到一个数组中。结果会是这样的: 字符*名称[2]; 名称[0]将有“Bob”,名称[1]将有“Jane”和 字符*地址[2]; 地址[0]将有“UK”,地址[1]将有“US” 有人能给我指出正确的方向,而不是为每个数组条目调用SQL语句吗 提前谢谢 如果从链接到的教程中的“选择”示例开始,可以对其进行修改,使其具有 struct results { s

我有一个列ID、名称和地址的表USER。e、 g

列ID为1,2 列名为Bob,Jane 列地址为英国、美国

我希望遍历所有记录,并将每列保存到一个数组中。结果会是这样的:

字符*名称[2]; 名称[0]将有“Bob”,名称[1]将有“Jane”和

字符*地址[2]; 地址[0]将有“UK”,地址[1]将有“US”

有人能给我指出正确的方向,而不是为每个数组条目调用SQL语句吗


提前谢谢

如果从链接到的教程中的“选择”示例开始,可以对其进行修改,使其具有

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\u exec
返回时,您应该填写
名称
地址
数组


当然有更好的方法来处理数组,这样您就不必预测最大行数等,但这是另一个问题。

网上有无数教程,您读过吗?我看过一些(例如),但它们只显示如何显示所有记录,但是没有显示如何遍历行,最重要的是,将每个值保存到一个数组中。谢谢您,好的先生!我读了这篇文章,意识到每个记录都会调用回调。我也没有想到可以使用struct。