Suche Datenbanksystem



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Datenbanken verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • das Auslesen einer Tabelle aus einer SQLite3 Datenbank nur ein paar Zeilen lang (und wirklich nur ein paar... um die 10).

    Ob du so nett wärest und diesen "kleinen" Code mal zeigen könntest. Dann hab ich zumindest einen Anfang.



  • Sicher doch

    SQLite3DB   Database;
    Database.open( "c:/database.db" );
    
    SQLite3Query Query = Database.execQuery( "SELECT * FROM tbl_layout" );
    if( false == Query.eof() )
    {
       Layout->LayoutType              = static_cast<TLayout::LayoutType_t>( Query.getIntField( "type" ) );
       Layout->LayoutName              = Query.getStringField( "name" );
       Layout->MajorVersion            = Query.getIntField( "major_version" );
       Layout->MinorVersion            = Query.getIntField( "minor_version" );
    }
    

    Ist jetzt zwar völlig aus dem Kontext gerissen, aber dürfte etwas helfen. Der Schnipsel liest genau einen Datensatz aus einer Tabelle, wenn du mehrere Datensätze lesen willst musst du halt die if-Klausel durch eine while-Klausel ersetzen und nach Behandlung des aktuellen Datensatzes mit SQLite3Query::nextRow() zum nächsten Datensatz springen:

    SQLite3DB   Database;
    Database.open( "c:/database.db" );
    
    SQLite3Query Query = Database.execQuery( "SELECT * FROM tbl_layout" );
    while( false == Query.eof() )
    {
       // Datensatz behandeln
       ...
       Query.nextRow();
    }
    


  • DocShoe schrieb:

    Sicher doch

    SQLite3DB   Database;
    Database.open( "c:/database.db" );
    
    SQLite3Query Query = Database.execQuery( "SELECT * FROM tbl_layout" );
    if( false == Query.eof() )
    {
       Layout->LayoutType              = static_cast<TLayout::LayoutType_t>( Query.getIntField( "type" ) );
       Layout->LayoutName              = Query.getStringField( "name" );
       Layout->MajorVersion            = Query.getIntField( "major_version" );
       Layout->MinorVersion            = Query.getIntField( "minor_version" );
    }
    

    Ist jetzt zwar völlig aus dem Kontext gerissen, aber dürfte etwas helfen. Der Schnipsel liest genau einen Datensatz aus einer Tabelle, wenn du mehrere Datensätze lesen willst musst du halt die if-Klausel durch eine while-Klausel ersetzen und nach Behandlung des aktuellen Datensatzes mit SQLite3Query::nextRow() zum nächsten Datensatz springen:

    SQLite3DB   Database;
    Database.open( "c:/database.db" );
    
    SQLite3Query Query = Database.execQuery( "SELECT * FROM tbl_layout" );
    while( false == Query.eof() )
    {
       // Datensatz behandeln
       ...
       Query.nextRow();
    }
    

    Cool danke.
    Das sieht doch schonmal gut aus.

    Was für eine lib also .h muss ich fürs SQLDB einbinden?



  • Achja und hast du Database und layout gar nicht deklariert?



  • Klaudii schrieb:

    Achja und hast du Database und layout gar nicht deklariert?

    Oh, jetzt wo du´s sagst fällt´s mir auch auf. Und ich suche seit einigen Monaten den Fehler, warum das Projekt nicht kompiliert.



  • Klaudii: Jetzt mal ganz im Ernst: Lies gefälligst Doku und komm erst dann wieder. Niemand wird Dir hier alles vorkauen, sorry.



  • Die Dokus die ich bisher gegooglet habe, sprengen enorm den Rahmen und sind zu umfangreich.

    Kannst du mir denn ein gutes Tutorials, was sich größteiles nur auf das Connecten + Ein- und Auslesen einer SQLite Datenbank in C++ beschränkt? Wäre super wenns auf deutsch wäre. Kann zwar auch englisch aber in der Muttersprache ist es ja immer ein wenig angenehmer 😛



  • In der Zeit, die Du hier mit Versuchen, andere Leute Deine Arbeit machen zu lassen, verbracht hast, hättest Du schon längst jedes Tutorial durch.

    Ich mag solche Verweise sonst ja nicht, aber: Hier, bitte.



  • Ok aber wenn ich dort den Beispiel code durchgehe und ihn ausprobiere kommt bei mir immer:

    'exit': identifier not found

    Dabei habe ich die sqlite3.h doch eingebunden?!
    Jemand eine idee?




Anmelden zum Antworten