sqlite c ++解析行或按列名获取值

时间:2013-06-27 20:11:09

标签: c++ sqlite

查看以下代码部分。这里我SELECT全桌。然后我想解析每一行并按列名称接收表内容。 SQLite是否可以按名称访问该行的列?感谢

if(sqlite3_prepare_v2(db, buffer, strlen(buffer), &stmt, 0) == SQLITE_OK)
{
    int cols = sqlite3_column_count(stmt);
    int result = 0;
    while(true)
    {
        result = sqlite3_step(stmt);

            if(result == SQLITE_ROW)
            {
                 // want to get result by column name xxx['columnName'];

1 个答案:

答案 0 :(得分:2)

您必须遍历所有列号并为每个列号调用sqlite3_column_name,检查名称是否匹配。

更清洁的设计是使用SELECT *而不是

SELECT list, the, column, names, here FROM ...

然后直接使用已知列索引(0 ... 4)sqlite3_column_type


只有当您执行从程序外部获得的某些未知查询时,才需要使用sqlite3_column_name