Ich habe eine SQLite-Datenbank mit folgenden Daten erhält:Warum sqlite3_data_count() gibt 0 zurück, wenn die Datenbank Daten enthält?
[[email protected] ~]$ sqlite3 /home/ouhma/test.db "select col1, col2 from mytable;"
201507|9063104793
201507|9212527372
201507|9212533474
201507|9212575626
201507|9212576618
201507|9212587832
201507|9322355921
201507|9322743536
201507|9334886428
201507|9334901403
Aber wenn ich versuche, die gleiche Abfrage auf diese Weise unter einem C-Programm läuft zu tun:
if (sqlite3_open(filedb, &db) != SQLITE_OK) {
fprintf(stderr, "Error opening db: %s\n", sqlite3_errmsg(db));
return EXIT_FAILURE;
}
char * sql = "select col1, col2 from mytable;";
iret = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if (iret != SQLITE_OK) {
printf("Error SQLITE %d when preparing the query.\n", iret);
return EXIT_FAILURE;
}
ncolumns = sqlite3_data_count(stmt);
printf("Columns: %d\n", ncolumns);
if (ncolumns == 0) {
printf("No data :(\n");
sqlite3_finalize(stmt);
return EXIT_SUCCESS;
}
...
Statt die von der Rückkehr die gleichen Zeilen wie zuvor, die Datenanzahl ist Null, und dann kann ich nicht die Informationen abrufen, die ich brauche.
[[email protected] ~]$ /home/ouhma/querydb2 /home/ouhma/query.txt /home/ouhma/test.db /home/ouhma/output.txt
Columns: 0
No data :(
Ich habe some C examples überprüft und die Vorbereitung Aussage sieht ok.
Also was entlasse ich? Warum gibt es 0 Zeilen zurück, wenn die Datenbank Daten enthält?
Vielen Dank. Die Anweisung, die ich benötigte, war 'sqlite3_column_count' nicht' sqlite3_data_count' – harrison4