Einzelnen Beitrag anzeigen

vit4l

Registriert seit: 10. Jun 2008
72 Beiträge
 
#5

Re: ADOQuery: nur eine Anfrage möglich???

  Alt 10. Feb 2009, 16:01
Delphi-Quellcode:
var
  ADOQ: TADOQuery;
...

procedure TfrmMain.KundenSuchen;
var
  strKundennummer: string;
  strVariante: string;
  Where: string;
  Where_Part1, Where_Part2: string;
  OrderBy: string;
  Select: string;
  i : integer;
begin
  try
    ADOQ.Active := false;

    if (Length(txtKundennummer.Text) > 0) or (Length(txtVariante.Text) > 0) then
    begin
      strKundennummer := LowerCase(txtKundennummer.Text + '%');
      strVariante := LowerCase('%' + txtVariante.Text + '%');

      with TStringList.Create do
      try
        Delimiter := ';';
        StrictDelimiter := true;
        DelimitedText := AktuellerBenutzer.Einstellungen.TABELLE_KUNDEN_SUCHFELDER;
        ADOQ.Parameters.Clear;
        with ADOQ.Parameters.AddParameter do
        begin
          Name := 'kundennummer';
          Value := strKundennummer;
        end;
        Where_Part1 := 'WHERE (LOWER(u_kn) LIKE :kundennummer) AND (';
        for i := 0 to Count - 1 do
        begin
          with ADOQ.Parameters.AddParameter do
          begin
            Name := Strings[i];
            Value := strVariante;
          end;
          if Length(Where_Part2) > 0 then
          Where_Part2 := Where_Part2 + ' OR ';
          Where_Part2 := Where_Part2 + '(LOWER(' + Strings[i] + ') LIKE :''' + Strings[i] + ''')';
        end;
      finally
        Where := Where_Part1 + Where_Part2 + ')';
        Free;
      end;

      case cbSortierenNach.ItemIndex of
        0: OrderBy := 'ORDER BY u_kn';
        1: OrderBy := 'ORDER BY u_name';
        2: OrderBy := 'ORDER BY u_vorname';
        3: OrderBy := 'ORDER BY u_plz';
        4: OrderBy := 'ORDER BY u_ort';
        5: OrderBy := 'ORDER BY u_land';
      end;

      Select := 'SELECT * FROM KUNDEN ' + Where + ' ' + OrderBy;

      ADOQ.SQL.Clear;
      ADOQ.ParamCheck := true;
      ADOQ.SQL.Text := Select;
      ADOQ.Active := true;
      ADOQ.Open;
    end;
  except
  end;
end;
  Mit Zitat antworten Zitat