Problem bei Query



  • Hallo,

    ich komme hier irgendwie nicht weiter. Ich schicke über einen Button eine SQL-Anweisung über ein TQuery-Modul ab.

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("select * from adressen where (Vorname = '" + Edit1->Text + "')");
    Query1->Open();
    }
    

    Im Edit1->Text steht am Anfang schon ein Name, den ich voreingestellt habe, und damit geht die SQL-Anweisung auch. Sobald ich dann allerdings den Namen aus Edit1 herauslösche, um dort einen anderen einzutragen, bekomme ich beim Klicken auf den Button folgende Fehlermeldung 😞 :

    Im Projekt Project1.exe ist eine Exception der Klasse EDBEngineError aufgetreten. 
    Meldung ‚Ungültiges Schlüsselwort Symbol-String: select Zeilennummer: 2’. Prozeß 
    wurde angehalten. Mit einzelner Anweisung oder Start fortsetzen.
    

    Kann mir jemand weiterhelfen? Ich kann mir das irgendwie gar nicht erklären.

    Viele Grüße,
    Arwen



  • Arwen schrieb:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("select * from adressen where (Vorname = '" + Edit1->Text + "')");
    Query1->Open();
    }
    

    Glaube das sollte so aussehen?
    "]

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("select * from adressen where Vorname = '" + Edit1->Text + "'");
    Query1->Open();
    }
    

    PS: statt= vielleicht ein like??



  • Was steht denn in Zeile 2 drin? Schau Dir das bitte mal mit dem Debugger an. Klingt für mich, als würde da zweimal das Schlüsselwort SELECT in der Anweisung stehen. In dem hier gezeigten Code ist kein Fehler.

    Hat zwar nichts mit dem Problem zu tun, aber um die Tipperei der Anführungszeichen zu sparen, kann man QuotedString() verwenden.



  • Vielen Dank für die Antworten, jetzt geht es! Durch das viele Herumprobieren war wirklich eine Codeteil doppelt :-(.


Anmelden zum Antworten