variable wird bei sql-abfrage nicht richtig erkannt
-
hallo zusammen,
ich bin langsam am verzweifeln. ich möchte eine einfache sql abfrage machen mit einer where klausel, aber irgendwie passt das nicht richtig. ich habe ein edit feld in dem ich den suchbegriff eingeben will und nach button-klick soll mir der datensatz angezeigt werden. hier mal die absolute minimalversion.
ich meine es sollte eigentlich so aussehen:void __fastcall TForm1::Button1Click(TObject *Sender) { query->Close(); query->SQL->Clear(); query->SQL->Add("SELECT * from tbl_test WHERE name = " + edit1->Text); query->Open(); }wenn ich diesen code ausführe bekomme ich folgende fehlermeldung:
Im Projekt1.... ist eine Exception der Klasse EOleException mit der Meldung '[Microsoft][ODBC SQL SERVER Driver][SQL Server] ungültiger Spaltenname'meier'' aufgetreten
wieso spaltenname???
gebe ich den sql befehl so ein:
void __fastcall TForm1::Button1Click(TObject *Sender) { query->Close(); query->SQL->Clear(); query->SQL->Add("SELECT * from tbl_test WHERE name = 'meier'"); query->Open(); }dann bekomme ich den datensatz mit name meier korrect angezeigt.
kann mir jemand ein wenig auf die sprünge helfen? Im inet hab ich nichts gefunden, außer das der code wie oben aussehen muß.
(bcb 6, 7 und mssql2000)
Danke vorab für eure Mühen
Gruß
Avalon
-
Ja. Und wo setzt Du in der dynamischen Fassung die Anführungszeichen?
Schau Dir mal QuotedStr() und AnsiQuotedStr() an.
-
void __fastcall TForm1::Button1Click(TObject *Sender) { query->Close(); query->SQL->Clear(); query->SQL->Add("SELECT * from tbl_test WHERE name = '" + edit1->Text + "'"); query->Open(); }
-
*mit der hand vor den kopf klatsch
jo, macht sinn
und so passt es auch.herzlichen dank
