Hi Coders,
ich möchte in der ersten Spalte den Wert der ersten und letzten existierenden Zeile auslesen.
Bisher habe ich beim Auslesen einfach alles durchgeschleift while(sqlite_step(statement)==SQLITE_ROW) was in dem Fall unsinnig wäre.
Hier (http://stackoverflow.com/questions/698047/most-efficient-way-to-select-1st-and-last-element-sqlite) habe ich so etwas wie eine Anleitung gefunden mit der ich allerdings nichts anfangen konnte da ich beim auslesen nur die Sache mit sqlite3_stmt, sqlite3_prepare_v2 und sqlite3_finalize kenne. Die Daten wurden ohne PRIMARY KEY angelegt und ich würde jetzt gerne einfach den Wert der ersten und letzten Zeile auslesen. Was die letzte Zeile angeht habe ich versucht mit sqlite3_last_insert_rowid weiterzukommen aber da war ich zu blöd für. Und zum Auslesen des ersten Wertes ist mir auch nichts eingefallen ausser eine Schleife zu machen und die nach dem ersten Wert abzubrechen aber schick ist das alles nicht
Grüße
ich möchte in der ersten Spalte den Wert der ersten und letzten existierenden Zeile auslesen.
Bisher habe ich beim Auslesen einfach alles durchgeschleift while(sqlite_step(statement)==SQLITE_ROW) was in dem Fall unsinnig wäre.
Hier (http://stackoverflow.com/questions/698047/most-efficient-way-to-select-1st-and-last-element-sqlite) habe ich so etwas wie eine Anleitung gefunden mit der ich allerdings nichts anfangen konnte da ich beim auslesen nur die Sache mit sqlite3_stmt, sqlite3_prepare_v2 und sqlite3_finalize kenne. Die Daten wurden ohne PRIMARY KEY angelegt und ich würde jetzt gerne einfach den Wert der ersten und letzten Zeile auslesen. Was die letzte Zeile angeht habe ich versucht mit sqlite3_last_insert_rowid weiterzukommen aber da war ich zu blöd für. Und zum Auslesen des ersten Wertes ist mir auch nichts eingefallen ausser eine Schleife zu machen und die nach dem ersten Wert abzubrechen aber schick ist das alles nicht
Code:
int ersterWert;
int letzterWert;
sqlite3 *db;
std::string temp_db_name = derDateiName;
const char *db_name = temp_db_name.c_str();
char *err_msg = 0;
int rc = sqlite3_open(db_name, &db);
if (rc != SQLITE_OK)
{
sqlite3_close(db);
}
std::string temp_text = "SELECT * FROM TabellenName;";
const char *temp_char = temp_text.c_str();
char buffer[1000];
sprintf(buffer,temp_char);
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(db,buffer, -1, &statement, 0)==SQLITE_OK)
{
// Hilfe! :-)
ersterWert = ???
letzterWert = ???
sqlite3_finalize(statement);
}
else
{
//wenn Fehler
}
Grüße