SQLite3 String suchen



  • Hallo.

    Ich möchte in mein Programm eine Suchfunktion einbauen, wo der Nutzer in eine EditBox einen Suchstring eingibt und ich diesen ohne irgendwelche Parameter/Operatoren in mehreren Spalten meiner Datenbank suchen will.

    (IDE: wxDevC++ ; SQLite3)

    Ich bin bereits auf den LIKE %% Befehl gestoßen, habe den auch programmiert.
    Wenn ich ein oder zwei Buchstaben eingebe, dann findet er entsprechende Ergebnisse.
    Bei 3 oder mehr Buchstaben bzw. dem gleichen Text wie in der Datenbank wird mir kein Text geliefert.

    wxString searchstr;
    searchstr = WxEdit1->GetLabel();
    
     if(sqlite3_open("db.sqlite3", &Database) != SQLITE_OK)
                {
                    popup(1);
                }
    
                else
                {    
                    char **pazResult=NULL;
                    int pnRow;
                    int pnColumn;
                    char *pzpopup=NULL;
                    int rc;
                    wxString vokabel_select_command = "SELECT vokabel_latein, vokabel_uebersetzung1, vokabel_uebersetzung2, vokabel_uebersetzung3, vokabel_uebersetzung4, vokabel_uebersetzung5 FROM vokabeln WHERE vokabel_latein LIKE '%"+searchstr+"%' OR vokabel_uebersetzung1 LIKE '%"+searchstr+"%' OR vokabel_uebersetzung2 LIKE '%"+searchstr+"%'  OR vokabel_uebersetzung3 LIKE '%"+searchstr+"%'  OR vokabel_uebersetzung4 LIKE '%"+searchstr+"%'  OR vokabel_uebersetzung5 LIKE '%"+searchstr+"%'";
    
                    rc = sqlite3_get_table(Database, vokabel_select_command, &pazResult, &pnRow, &pnColumn, &pzpopup);
    
                    if (rc!=SQLITE_OK)
                    {
                        popup(2);
                    }
                    else
                    {
                    }
                {
    

    Ansonsten hatte ich ein bisschen gesucht und bin über FTS in SQLite gestoßen.
    Dabei kann ich aber mit den Beispielen die dort geliefert werden nicht ganz so viel anfangen.

    Evtl. habt ihr noch eine Idee bzw. könnt mir weiterhelfen.

    Grüße,
    Eric.



  • Keine Ideen?




Anmelden zum Antworten