Anzahl der Datensätze ausgeben (SQL)



  • Hi,

    ich versuche gerade eine Datenbank in mein MFC-Projekt einzubinden.
    Da ich in einer Funktion die Anzahl der Datensätze in table_1 benötige, dachte ich wie folgt vorgehen zu können.
    Leider führt dieser Weg nicht zum gewünschten Ergebnis, sondern gibt mir eine 0 aus.
    In der Datenbank sind jedoch def. 11 Datensätze hinterlegt (Zeilen)

    sqlite3_open("Database\\database.db", &db);
    			int rc=sqlite3_exec(db, "SELECT COUNT(*) FROM table_1;",  0, 0, &db_err);
    			sqlite3_close(db);
    

    Kann mir vielleicht jemand weiterhelfen ??

    Gruß Se33l



  • sqlite3_exec(db, "SELECT COUNT(*) FROM table_1;", length_callback, &total_rows, &db_err);

    1. kein seminkolon!
    2. total_rows



  • mhh..

    leider funktioniert das Ganze noch nicht..
    wahrscheinlich mache ich noch irgendetwas falsch.

    *.h

    sqlite3_callback length_callback;
    	int total_rows;
    

    *.cpp

    sqlite3_open("Database\\database.db", &db);
    			sqlite3_exec(db, "SELECT COUNT(*) FROM table_1",length_callback, &total_rows, &db_err); 
    			sqlite3_close(db);
    


  • Was gibt es denn für einen Fehler?
    Compilerfehler oder Fehler in der Ausführung?

    Bei letzterem wäre die Prüfung bei db bzw. db_err auch hilfreich für dich,den Fehler zu ermitteln!



  • Es handelt sich um einen Fehler in der Ausführung.

    Programmfehler bei legacy.c

    if( xCallback(pArg, nCol, azVals, azCols) ){
              rc = SQLITE_ABORT;
              goto exec_out;
    

    in db und db_err steht <Schlechtes Ptr>


  • Mod

    Dann ist wohl einer der Zeiger die Du übergibst falsch. Ich tippe mal auf sqlite3_callback length_callback;

    Vielleicht solltest Du noch mal etwas lesen:
    http://www.sqlite.org/quickstart.html


Anmelden zum Antworten