Einzelnen Beitrag anzeigen

BBB

Registriert seit: 13. Jul 2006
25 Beiträge
 
#6

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 13:03
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.
  Mit Zitat antworten Zitat