Entwickler-Ecke

Datenbanken - Datzensätze Suchen ADO/SQL


Hans-Georg - Mo 20.09.10 10:51
Titel: Datzensätze Suchen ADO/SQL
Hallo
Ich möchte in einer Tabelle nach
einen bestimmten Datensatz suchen
und habe das so gemacht aber ich bekomme die fehlermeldung

"EOLE Exeption Parameter hat keinen Standartwert"

was ist da falsch oder vergessen worden.


procedure TForm1.PersonalNameSuche(Sender: TObject);
var
SearchVal : String;
begin
s := '';
SearchVal := '';
s := InputBox('Datensatz Suchen','Suchbegriff','');
SearchVal := s;
//SQL---------------------------------------------------------------------------
DataModule1.ADOAbfrageQuery1.Close;
DataModule1.ADOAbfrageQuery1.SQL.Clear;
//Aus den Internet
DataModule1.ADOAbfrageQuery1.SQL.Add('select * from Personal where name like ''%'+SearchVal+'%''');
DataModule1.ADOAbfrageQuery1.open;
DataModule1.ADOAbfrageQuery1.ExecSQL; //??
end;[/delphi]

danke im vorraus
Hans-Georg


mkinzler - Mo 20.09.10 10:58

Es fehlt das Like:


SQL-Anweisung
1:
select * from Personal where name like '%<Text>%';                    


Martok - Mo 20.09.10 16:21

Und es sind eventuell die falschen Anführungszeichen. Nach SQL sind da '' ran, nicht ""; aber je nach nach DBMS wird das mehr oder weniger strikt gehandhabt.

OT: beim ersten Absatz hab ich jetzt echt überlegt, ob das ein bestimmtes Versmaß darstellen soll. Für einen Dactylus ists aber je eine Silbe zu viel :P


mkinzler - Mo 20.09.10 16:27

Zitat:
Nach SQL sind da '' ran, nicht ""; aber je nach nach DBMS wird das mehr oder weniger strikt gehandhabt.
Oder hat eine andere Bedeutung


Martok - Mo 20.09.10 16:34

Hat es eigentlich immer, aber manche DBMS [http://www.sqlite.org/lang_keywords.html] raten da dann was gemeint sein könnte.

Also: Single-Quotes nehmen, das klappt immer.


Delphi-Quelltext
1:
 DataModule1.ADOAbfrageQuery1.SQL.Add('select * from Personal where name like ''%'+SearchVal+'%''');