SQL Problem



  • Hallo,

    also direkt zu meinem Prob. Ich bin dabei einen Vokabel trainer zu schreiben und habe schon eine Datenbank eingebunden und soweiter und so fort. Nun will ich mit nem Sql query arbeiten und würde gerne nur eine zeile raussuchen nämlich bei der in der Spalte Englisch "hello" drin ist.

    also nochma zum verständnis. Meine Datenbank heißt Vokabeln -> Tabelle heißt "vok" -> Spalten sind "ID + Englisch + Deutsch + Richtig"

    und ich würde jetzt gerne mit

    SELECT * From vok WHERE Englisch = "hello" ; die Zeile auslesen.

    Dann kommt folgender Fehler : 1 Parameter wurder erwartet, aber es wurden zu wenige Parameter übergeben.

    kann damit jemand was anfangen`?

    Danke für die mühe



  • Mit welcher Komponente hast du denn auf die Datenbank zugegriffen und wie sieht dein entsprechender Source-Code dazu aus?
    Und ist das ein Compile- oder Laufzeitfehler?



  • hey danke für die antwort aber konnte das prob selber lösen. und zwar nicht

    SELECT * From vok WHERE Englisch = "hello" ;

    sondern

    SELECT * From vok WHERE Englisch = 'hello' ;

    also anstatt " " -> ' '. Nun hab ich aber ein anderes Problem. Es handelt sich um einen laufzeitfehler also tritt nur ein wenn die sql abfrage eintritt.

    ich würde gerne den wert (integer) von der Spalte Richtig ändern. Sprich ich zieh mit SELECT * From vok WHERE Englisch = 'hello' ; folgende zeile raus

    ID Englisch Deutsch Richtig

    1 hello hallo 0

    Richtig steht für die anzahl wie oft die vokabel richtig genannt wurde. Also ich rufe die sql abfrage SELECT * From vok WHERE Englisch = 'hello' ; auf zieh diese zeile raus hol mit die 0 raus mach diese zu einer 1 und möchte nun die 1 auch in die tabelle schreiben

    mit UPDATE vok SET Richtig = 1 ; funktioniert nicht

    auch UPDATE vok SET Richtig = 1 WHERE Englisch = 'hello' funktioniert auch nicht kommt folgender fehler.

    Fehler beim erstellen der Cursor-Handle

    Weiß jemand abhilfe?



  • SRY habs schon selber gefunden TUT mir leid . eventuell für die die das problem nach mir haben hier die Syntax

    void SQL(int b){
    frmMain->qSql->SQL->Clear();
    frmMain->qSql->SQL->Add("SELECT * From Vokabeln WHERE Englisch='"+vokabel[b][0]+"'");
    frmMain->qSql->Active=true;
    frmMain->qSql->First();
    int a=frmMain->qSql->FieldByName("Richtig")->AsInteger;
    a++;
    frmMain->qSql->Active=false;
    frmMain->qSql->SQL->Clear();
    frmMain->qSql->SQL->Add("UPDATE Vokabeln SET Richtig =" + IntToStr(a) + " WHERE Englisch='"+vokabel[b][0]+"'");
    frmMain->qSql->ExecSQL();
    }

    qSql->ExecSQL(); ist das zauberwörtchen

    jeder der prob hat mit Cursor Handle probierts erst ma mit qSql->ExecSQL();


Anmelden zum Antworten