SQLite C++解析行或按列值获取值

SQLite C++解析行或按列值获取值,c++,sqlite,C++,Sqlite,请看下面的代码部分。这里我选择整张桌子。然后我想解析每一行,并按列名接收表内容。使用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 = sql

请看下面的代码部分。这里我选择整张桌子。然后我想解析每一行,并按列名接收表内容。使用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'];

您必须迭代所有列号并调用每个列号,检查名称是否匹配

一个更干净的设计是使用非选择*而是

从以下位置选择列表、列、名称。。。 然后直接使用已知的列索引0…4


只有在执行从程序外部获得的未知查询时,才有必要使用sqlite3\u column\u name。

我不确定是否可以直接这样做,但通过索引获取列名非常容易:std::string col\u name sqlite3\u column\u namestmt,column\u index;我不知道你想用这些代码向我们展示什么。它什么也没给我们看。如果您想通过列名获取,为什么不在SELECT语句中直接命名该列呢?非常感谢。我明白其中的诀窍:我是sqlite的新手。对于我的技巧:当我使用SELECT*时,索引不可用?使用SELECT*时,你会得到与你写出的列相同的列名。问题是您无法立即了解它们,尤其是在以后更改表结构时。