SQLite C++解析行或按列值获取值
请看下面的代码部分。这里我选择整张桌子。然后我想解析每一行,并按列名接收表内容。使用SQLite是否可以按名称访问行中的列?谢谢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
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*时,你会得到与你写出的列相同的列名。问题是您无法立即了解它们,尤其是在以后更改表结构时。