Danke für die Codebsp! Ich weis eure Mühe echt zu schätzen aber so ganz blick ich in dem Code nicht durch. Ich werd einfach mal damit rumprobieren.
Es gibt nach wie vor einen Fehler, obwohl es meiner Meinung nach richtig aussieht.
Hier nochmal der Code, vielleicht kann mir jemand sagen wo der Fehler liegt.
SQL-Code:
begin
cFilter := '';
cFileName := AdsTable1.TableName;
if txtPrimNutz.Text <> '' then begin
if checkboxExakt1.checked = true then begin
cFilter := 'Select * From "cFileName" Where PRIMNUTZER = '+UpperCase(txtPrimNutz.Text)+'';
end
else begin
cFilter := 'Select * From "cFileName" Where PRIMNUTZER = '+UpperCase(txtPrimNutz.Text + '*')+'';
end;
end;
if txtBez.Text <> '' then begin
if checkboxExakt2.Checked = true then begin
if cFilter <> '' then cFilter := cFilter + ' and';
cFilter := cFilter + ' BEZEICHNUNG = '+UpperCase(txtBez.Text)+'';
end
else begin
if cFilter <> '' then cFilter := cFilter + ' and';
cFilter := cFilter + ' BEZEICHNUNG = '+UpperCase(txtBez.Text + '*')+'';
end;
end;
if txtStandort.Text <> '' then begin
if checkboxExakt3.checked = true then begin
if cFilter <> '' then cFilter := cFilter + ' and';
cFilter := cFilter + ' STANDORT = '+UpperCase(txtStandort.Text)+'';
end
else begin
if cFilter <> '' then cFilter := cFilter + ' and';
cFilter := cFilter + ' STANDORT = '+UpperCase(txtStandort.Text + '*')+'';
end;
end;
AdsQuery1.Close;
AdsQuery1.SQL.Clear;
AdsQuery1.SQL.Add(cFilter);
If cFilter <> '' Then AdsQuery1.ExecSQL; // <-- In dieser Zeile kommt der Fehler!
cFilter sieht, wenn ich abc1-3 als Suchkriterium übergebe dann so aus:
Zitat:
Select * From "cFileName" Where PRIMNUTZER = abc1 and BEZEICHNUNG = abc2 and Standort = abc3
cFileName beinhaltet "Testtabelle1.ADT"
Und der Fehler lautet:
Zitat:
Im Projekt <Projektname.exe> ist eine Exeption der Klasse EADSDatabaseError aufgetreten. Meldung: 'AdsQuery1: Error 7200: AQEError: State = 42000; NativeError = 2115; [Extended Systems][Advantage
SQL Engine]Expected lexical Element not found: identifier or Expression -- Location of error in the
SQL Statement is: 55 (line: 2 column: 1) There was a Problem parsing the WHERE clause in your SELECT statement.'. Prozeß wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.