Suche über Editfeld mittels mehreren Spalten
-
Was ist an dem Quellcode falsch?
Also ich möchte über eine Suchfunktion ein Buch suchen. Dabei kann ich entweder den Titel oder Autor des Buches eingeben, aber wenn ich es so wie folgt mache, dann kann ich beides zwar eingeben, aber er findet nur über den Autor das Buch. Bei Eingabe des Titels findet er nix?!void__fastcall TBuecher::BSucheClick(TObject *Sender) { ADODBuch->Active = false; ADODBuch->CommandText = "SELECT * FROM Buchverzeichnis " "WHERE Titel LIKE :Suche"; ADODBuch->Parameters->ParamByName("Suche")->Value = "%" + ESuche->Text + "%"; ADODBuch->CommandText = "SELECT * FROM Buchverzeichnis " "WHERE Autor LIKE :Suche"; ADODBuch->Parameters->ParamByName("Suche")->Value = "%" + ESuche->Text + "%"; ADODBuch->Active = true; }ESuche=Editfeld
ADODBuch=ADODataSet
-
Na ja, in Zeile 8 überschreibst Du die vorherige Select-Anweisung.
void__fastcall TBuecher::BSucheClick(TObject *Sender) { ADODBuch->Active = false; ADODBuch->CommandText = "SELECT * FROM Buchverzeichnis " "WHERE (Titel LIKE :Suche) OR (Autor LIKE :Suche)"; ADODBuch->Parameters->ParamByName("Suche")->Value = "%" + ESuche->Text + "%"; ADODBuch->Active = true; }
-
Gut, hab ich geändert. Jetzt kommt aber ne Fehlermeldung: 'Ein Parameterobjekt ist nicht ordnungsgemäß definiert. Inkonsistente oder unvollständige Informationen wurden angegeben.'
-
du darfst nicht zweimal den Parameter "Suche" verwenden, mach einfach Suche1 und Suche2 draus und gib auch 2 Parameter ein
-
DANKE!!!
