1

看下面的代码部分。我在这里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'];
4

1 回答 1

2

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

一个更清洁的设计是使用 not SELECT *but

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

然后直接使用已知的列索引 (0...4) 和sqlite3_column_ type


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

于 2013-06-27T20:28:04.240 回答