sqlitec++通过列名解析行或获取值

sqlite c++ parse row or get value by column name

本文关键字:获取 sqlitec++      更新时间:2023-10-16

查看以下代码部分。这里我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'];

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

一个更干净的设计是不使用SELECT *,而是使用

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

然后将已知的列索引(0…4)直接与sqlite3_column_类型一起使用。


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