Nur für Super-Neulinge wie mich, die sich fragen, wie oder was die Leute meinen mit
PRAGMA table_info('table_name')
Verwenden Sie dies als vorbereitende Anweisung wie unten gezeigt. Dadurch wird eine Tabelle ausgewählt, die wie diese aussieht, aber mit den Werten Ihrer Tabelle gefüllt ist.
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 id integer 99 1
1 name 0 0
Dabei sind id und name die tatsächlichen Namen Ihrer Spalten. Um diesen Wert zu erhalten, müssen Sie also den Spaltennamen auswählen, indem Sie:
//returns the name
sqlite3_column_text(stmt, 1);
//returns the type
sqlite3_column_text(stmt, 2);
Das gibt den Namen der Spalte der aktuellen Zeile zurück. Um alle zu erfassen oder die gewünschte Spalte zu finden, müssen Sie alle Zeilen durchlaufen. Der einfachste Weg, dies zu tun, wäre der folgende.
//where rc is an int variable if wondering :/
rc = sqlite3_prepare_v2(dbPointer, "pragma table_info ('your table name goes here')", -1, &stmt, NULL);
if (rc==SQLITE_OK)
{
//will continue to go down the rows (columns in your table) till there are no more
while(sqlite3_step(stmt) == SQLITE_ROW)
{
sprintf(colName, "%s", sqlite3_column_text(stmt, 1));
//do something with colName because it contains the column's name
}
}