Juste pour les super noobs comme moi qui se demandent comment ou ce que les gens entendent par
PRAGMA table_info('table_name')
Vous souhaitez l'utiliser comme votre instruction de préparation, comme indiqué ci-dessous. Cela sélectionne une table qui ressemble à ceci, sauf qu'elle est remplie de valeurs relatives à votre table.
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 id integer 99 1
1 name 0 0
Où id et nom sont les noms réels de vos colonnes. Donc, pour obtenir cette valeur, vous devez sélectionner le nom de la colonne en utilisant:
//returns the name
sqlite3_column_text(stmt, 1);
//returns the type
sqlite3_column_text(stmt, 2);
Qui renverra le nom de la colonne de la ligne actuelle. Pour les saisir tous ou trouver celui que vous voulez, vous devez parcourir toutes les lignes. La manière la plus simple de le faire serait de la manière suivante.
//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
, consultez cette question et réponse pour une liste simple des noms de colonne ou celle-ci pour les problèmes de migration.