Ich würde folgendermassen vorgehen:
Delphi-Quellcode:
Function TForm1.Suchen;
var
oqQuery :TOracleQuery;
strSQL :
string;
begin
//Dynamisch erzeugtes Query Createn
oqQuery := TOracleQuery.Create(
nil);
try
//Session zuweisen
oqQuery.Session := OracleSession;
//Ersten SQL-Text Setzen.
oqQuery.SQL.TEXT := '
select * from adresse where ';
//Where Clausel zusammenbauen
strSQL := '
';
if self.EditName.Text <> '
'
then
strSQL := strSQL + '
name like '+QuotedStr('
%'+self.EditName.text+'
%')+'
and ';
if self.EditID.Text <> '
'
then
strSQL := strSQL + '
id = '+self.EditID.Text+'
and ';
if self.EditDatum.Text <> '
'
then
StrSQL := strSQL + '
Datum = '+QuotedStr(self.EditDatum.text)+'
and ';
if pos('
and', strSQL <> 0
then strSQL := leftStr(strSQL, length(strSQL)-5)
else oqQuery.SQL.Text := leftStr(oqQuery.SQL.Text, length(oqQuery.SQL.Text)-6);
//SQL-Anweisung hinzufügen.
oqQuery.SQL.Text := oqQuery.SQL.Text + strSQL;
//SQL-Anweisung ausführen
oqQuery.Execute;
{ Weitere Anweisungen, da ich gleich das Objekt wieder freigebe }
finally
oqQuery.Free;
end;
end;
- Wie Du siehst baue ich mir hier eine
SQL-Anweisung dynamisch zusammen.
- Ich arbeite persönlich mit den OracleComponenten, darum auch TOracleQuery, sollte aber bei anderen Componenten auch funktionieren.
Ich hoffe Dir geholfen zu haben.
Gruss
Samson