nouvelle réponse http://www.sqlapi.com/ Cette bibliothèque peut faire ce que vous voulez.
ancienne réponse Fondamentalement, vous devrez parcourir les colonnes avec sqlite3_column_name16
ou sqlite3_column_name
. Vous devrez comparer les cordes qui reviennent avec celle que vous voulez regarder.
J'ai utilisé ceci, son MFC, mais cela vous donne une idée de base de ce qu'il faut faire.
int CSQLite3Query::FieldIndex(const CString &field)
{
CheckVM();
if (!field.IsEmpty())
{
for (int nField = 0; nField < m_nCols; nField++)
{
#ifdef UNICODE
CString sTemp = (LPCTSTR)sqlite3_column_name16(m_VM, nField);
#else
CString sTemp = (LPCTSTR)sqlite3_column_name(m_VM, nField);
#endif
if (sTemp == field)
return nField;
}
}
else
{
throw new CSQLite3Exception(MFCSQLITE3_ERROR,
MFCSQLITE3_INVALID_FIELD_NAME);
}
return -1;
}
Pas très élégant ... –
Mais très efficace si vous n'avez pas besoin des noms de colonnes dynamiques :-) – lothar