查看以下代码部分。这里我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'];
答案 0 :(得分:2)
您必须遍历所有列号并为每个列号调用sqlite3_column_name,检查名称是否匹配。
更清洁的设计是使用SELECT *
而不是
SELECT list, the, column, names, here FROM ...
然后直接使用已知列索引(0 ... 4)sqlite3_column_type。
只有当您执行从程序外部获得的某些未知查询时,才需要使用sqlite3_column_name
。