Nur für Super-Noobs wie mich, die sich fragen, wie oder was die Leute damit gemeint haben
PRAGMA table_info('table_name')
Sie möchten dies als Vorbereitungsanweisung verwenden, wie unten gezeigt. Dadurch wird eine Tabelle ausgewählt, die so aussieht, außer dass sie mit Werten gefüllt ist, die sich auf Ihre Tabelle beziehen.
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 id integer 99 1
1 name 0 0
Wobei ID und Name die tatsächlichen Namen Ihrer Spalten sind. Um diesen Wert zu erhalten, müssen Sie den Spaltennamen auswählen, indem Sie Folgendes verwenden:
//returns the name
sqlite3_column_text(stmt, 1);
//returns the type
sqlite3_column_text(stmt, 2);
Dadurch wird der Spaltenname der aktuellen Zeile zurückgegeben. Um sie alle zu erfassen oder die gewünschte zu finden, müssen Sie alle Zeilen durchlaufen. Der einfachste Weg, dies zu tun, wäre die 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
}
}
SQLite.swift
finden Sie in dieser Frage und Antwort eine einfache Liste der Spaltennamen oder diese für Migrationsprobleme.