7 votes

Obtenir le nom des colonnes dans sqlite3

J'aimerais imprimer le contenu de ma table sql et pour cela, j'aimerais récupérer le nom de la colonne de la table. Une solution que j'ai trouvée est :

SELECT sql FROM sqlite_master WHERE tbl_name = 'table_name' AND type = 'table'

Mais il semble que je doive analyser les résultats.

Une autre suggestion était d'utiliser :

PRAGMA table_info(table_name);

mais la page sqlite ci-dessous suggère de ne pas l'utiliser : http://www.sqlite.org/pragma.html#pragma_full_column_names

Existe-t-il un moyen d'y parvenir ? De plus, quelle serait la syntaxe à utiliser

PRAGMA table_info(table_name);

Les solutions ci-dessus sont tirées de aquí

8voto

Wes Points 1110

Puisque votre question est étiquetée c Je suppose que vous avez accès à l'API C de SQLite. Si vous créez une instruction préparée avec l'un des éléments suivants Fonctions prepare_v2 qui sélectionne dans la table que vous voulez, vous pouvez utiliser sqlite3_nom_de_colonne pour obtenir le nom de chaque colonne.

4voto

Petr Abdulin Points 7297

Vous pouvez utiliser en toute sécurité PRAGMA table_info(table-name); puisqu'il s'agit pas déprécié de quelque manière que ce soit (votre message renvoie à un autre pragma).

1voto

roymustang86 Points 1213
int sqlite3_get_table(
    sqlite3 *db,          /* An open database */
    const char *zSql,     /* SQL to be evaluated */
    char ***pazResult,    /* Results of the query */
    int *pnRow,           /* Number of result rows written here */
    int *pnColumn,        /* Number of result columns written here */
    char **pzErrmsg       /* Error msg written here */
    );

Si vous utilisez c/c++, vous pouvez utiliser la fonction sqlite3_get_table(db, query, result, nrow, ncol, errmsg) ;

La requête est la suivante : select * from table ;

Les premiers résultats result[0], result[1]...... contiendront les noms des colonnes.

0voto

Franke Points 161

Ce paramètre permet d'activer l'affichage des noms de colonnes dans le retour des instructions de sélection :

.headers on

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X