Тільки для супер-нобусів, як я, цікаво, як і що люди мають на увазі
PRAGMA table_info('table_name')
Ви хочете використовувати це як свою підготовку, як показано нижче. При цьому вибирається таблиця, яка виглядає приблизно так, за винятком заповнення значень, що відносяться до вашої таблиці.
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 id integer 99 1
1 name 0 0
Де id та ім’я - фактичні назви ваших стовпців. Отже, щоб отримати це значення, потрібно вибрати ім'я стовпця, використовуючи:
//returns the name
sqlite3_column_text(stmt, 1);
//returns the type
sqlite3_column_text(stmt, 2);
Яке поверне назву стовпця поточного рядка. Щоб схопити їх усіх або знайти потрібний, вам потрібно перебрати всі рядки. Найпростіший спосіб зробити це було б у наведеному нижче способі.
//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
див. Це запитання та відповідь на простий список назв стовпців або цей на питання щодо міграції.