int sqlite3_get_table(
sqlite3 *db,
const char *zSql,
char ***pazResult,
int *pnRow,
int *pnColumn,
char **pzErrmsg
);
void sqlite3_free_table(char **result);
Diese Funktion kann benutzt werden, um ein oder mehrere SQL-Kommandos auszuführen und die Rückgabewerte auf dem Heap abzulegen. Die Funktion liefert dazu einen Pointer auf den Speicherbereich, sowie die Anzahl der Rückgabezeilen und die Anzahl der Rückgabespalten zurück.
Das zurückgeliefert Ergebnis muss mit sqlite3_free_table() freigegeben werden, damit kein Speicherleck entsteht
Die Rückgabewerte, befinden sich als 0-terminierte UTF-8 Strings in einen Pointerarray. Hier ein Beispiel, wie die Daten abgelegt werden:
Name | Alter |
---|---|
Max | 20 |
Werner | 45 |
Susi | 31 |
Gehen wir von dem diesem SQL-Befehl aus:
SELECT * FROM Tabelle;
Die Rückgabewert sehen dann wie folgt aus:
Diese acht Wert sind folgendermaßen angeordnet:
azResult[0]==„Name“;
azResult[1]==„Alter“;
azResult[2]==„Max“;
azResult[3]==„20“;
azResult[4]==„Werner“;
azResult[5]==„45“;
azResult[6]==„Susi“;
azResult[7]==„31“;