Hanya untuk noobs super seperti saya bertanya-tanya bagaimana atau apa yang dimaksud orang
PRAGMA table_info('table_name')
Anda ingin menggunakannya sebagai pernyataan persiapan seperti yang ditunjukkan di bawah ini. Melakukannya memilih tabel yang terlihat seperti ini kecuali diisi dengan nilai yang berkaitan dengan tabel Anda.
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 id integer 99 1
1 name 0 0
Di mana id dan nama adalah nama sebenarnya dari kolom Anda. Jadi untuk mendapatkan nilai itu, Anda perlu memilih nama kolom dengan menggunakan:
//returns the name
sqlite3_column_text(stmt, 1);
//returns the type
sqlite3_column_text(stmt, 2);
Yang akan mengembalikan nama kolom baris saat ini. Untuk mengambil semuanya atau menemukan yang Anda inginkan, Anda harus mengulangi semua baris. Cara paling sederhana untuk melakukannya adalah dengan cara di bawah ini.
//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
, lihat pertanyaan dan jawaban ini untuk daftar nama kolom yang sederhana atau yang ini untuk masalah migrasi.