Looking for sqlite Answers? Try Ask4KnowledgeBase
Looking for sqlite Keywords? Try Ask4Keywords

sqlite Daten aus einem Cursor lesen


Beispiel

Eine SELECT - Abfrage wird ausgeführt wie jede andere Aussage. Um die zurückgegebenen Daten zu lesen, rufen Sie sqlite3_step () in einer Schleife auf. Es gibt zurück:

  • SQLITE_ROW: wenn die Daten für die nächste Zeile verfügbar sind, oder
  • SQLITE_DONE: wenn keine weiteren Zeilen vorhanden sind, oder
  • ein beliebiger Fehlercode

Wenn eine Abfrage keine Zeilen zurückgibt, gibt der allererste Schritt SQLITE_DONE zurück.

Um die Daten aus der aktuellen Zeile zu lesen, rufen Sie die Funktionen sqlite3_column_xxx () auf :

const char *sql = "SELECT ID, Name FROM MyTable";
sqlite3_stmt *stmt;
int err;

err = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if (err != SQLITE_OK) {
    printf("prepare failed: %s\n", sqlite3_errmsg(db));
    return /* failure */;
}

for (;;) {
    err = sqlite3_step(stmt);
    if (err != SQLITE_ROW)
        break;

    int         id   = sqlite3_column_int (stmt, 0);
    const char *name = sqlite3_column_text(stmt, 1);
    if (name == NULL)
        name = "(NULL)";
    printf("ID: %d, Name: %s\n", id, name);
}

if (err != SQLITE_DONE) {
    printf("execution failed: %s\n", sqlite3_errmsg(db));
    sqlite3_finalize(stmt);
    return /* failure */;
}

sqlite3_finalize(stmt);
return /* success */;