Rückgabewerte von sqlite3_step auswerten

const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);
int sqlite3_column_bytes(sqlite3_stmt*, int iCol);
double sqlite3_column_double(sqlite3_stmt*, int iCol);
int sqlite3_column_int(sqlite3_stmt*, int iCol);
const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);

int sqlite3_column_type(sqlite3_stmt*, int iCol);

int sqlite3_column_count(sqlite3_stmt *pStmt);




Diese Befehle werden benutzt, um auf einzelne Tabellenfelder zuzugreifen. Jede dieser Funktionen erwartet ein Prepared Statement, wie es z.B. mit sqlite3_prepare_v2() erzeugt werden kann. Bis auf sqlite3_column_count erwartet auch jede dieser Funktionen die Indexnummer einer Tabellenspalte. Mittels sqlite3_column_count kann die Anzahl der Spalten festgestellt werden. Die niedrigste Indexnummer ist immer Null und bezieht sich auf die äußere linke Spalte. Zeigt das SQL-Statement nicht auf eine gültige Tabellenzeile oder ist der Index außerhalb des gültigen Bereichs, ist der Rückgabewert dieser Funktionen undefiniert. Deshalb ist es sehr sinnvoll, diese Funktionen nur aufzurufen, wenn sqlite3_step() den Wert SQLITE_ROW zurückgeliefert hat und weder sqlite3_reset() noch sqlite3_finalize() aufgerufen wurden.
sqlite3_column_blob liefert einen void-Pointer auf ein in der Datenbank gespeichertes Binärobjekt zurück.
sqlite3_column_bytes kann für BLOB und Stringobjekte benutzt werden, um die Größe der Objekt in Bytes zu erfahren.
Die nächsten drei Funktionen werden benutzt um entweder auf Gleitkomma-, Ganzzahl oder Charobjekt zuzugreifen.

sqlite3_column_type liefert den Datentyp zurück, der sich in einer Tabellenspalte befindet. Es sind folgende Rückgabewerte möglich:

  • SQLITE_INTEGER bei Ganzzahlen
  • SQLITE_FLOAT bei Gleitkommazahlen
  • SQLITE_TEXT bei Strings bzw. Textchars
  • SQLITE_BLOB für Binärobjekte
  • SQLITE_NULL wenn nichts enthalten ist.


sqlite3_column_count liefert die Anzahl der Spalten als Integerwert zurück.

Die Liste dieser Funktionsgruppe ist nicht vollständig, spezielle Funktionen sowie die Funktionen für UTF-16 codierte Strings fehlen.