Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie nutze ich CheckBox in SQL-Abfrage? (https://www.delphipraxis.net/86534-wie-nutze-ich-checkbox-sql-abfrage.html)

zenobi 15. Feb 2007 11:59

Datenbank: MySQL • Zugriff über: MySQL Access

Wie nutze ich CheckBox in SQL-Abfrage?
 
Hallo, :???:

ich habe folgendes Problem:
möchte nach mehreren Kriterien in meiner DB suchen. Dazu habe ich eine Eingabemaske mit einem EditFeld (Hier kann der gesuchte Produktname eingegeben werden), einer ComboBox (hier stehen mehrere Herstellernamen zur Auswahl), eine Checkbox1 als Produktart A / Checkbox2 als Produktart B und CheckBox3 als Produkt-Active.
Wir nehmen an, dass ich nach 5 Kriterien suche:
Produktname (varchar)
Produkthersteller (varchar)
Produkttyp (boolscher Ausdruck)
ProduktAktiv (boolscher Ausdruck)

(Alle 5 Daten befinden sich in einer Tabelle und jedes Kriterium ist als eine Spalte in dieser Tabelle gültig). Die Suche nach zwei ersten Kriterien funktioniert aber ich weiss nicht wie ich jetzt noch zu dieser Abfrage diese drei Checkboxen anbinden soll, damit die ganze Suche nach 5 Kriterien funktionieren kann.

Um die Suche zu programmieren habe ich folgenden Code geschrieben:

Delphi-Quellcode:
procedure TForm7.Button1Click(Sender: TObject);
begin
   with DataModule4.MyQuery5 do begin
      DataModule4.MyQuery5.SQL.Clear;
      DataModule4.MyQuery5.SQL.Add('Select * from product ');
      DataModule4.MyQuery5.SQL.Add('where p_name like');
      DataModule4.MyQuery5.SQL.Add(' ''%' + Edit1.Text + '%''');
      DataModule4.MyQuery5.SQL.Add('AND p_producername like ''%' + ComboBox1.Text + '%''');
 
      DataModule4.MyQuery5.Open;
      Label2.Caption := IntToStr(RecordCount) + ' Stück gefunden!'
Hat jemand irgendwelche Idee wie man dieses Problem lösen könnte?

uwewo 15. Feb 2007 12:11

Re: Wie nutze ich CheckBox in SQL-Abfrage?
 
Hi zenobi,

wie wärs mit
Delphi-Quellcode:
if CheckBox.Checked then DataModule4.MyQuery5.SQL.Add('Dein Kriterium')
Uwe

marabu 15. Feb 2007 13:38

Re: Wie nutze ich CheckBox in SQL-Abfrage?
 
Herzlich willkommen in der Delphi-PRAXiS, zenobi.

Eine Spalte vom Typ BOOL kannst du gegen 0 oder 1 prüfen.

Freundliche Grüße vom marabu

zenobi 15. Feb 2007 13:44

Re: Wie nutze ich CheckBox in SQL-Abfrage?
 
Hallo Uwe,

danke für den Tip, es funktioniert jetzt :dancer2:

Falls jemand gleiches Problem hat, gebe ich noch mal die ganze Lösung an:

Delphi-Quellcode:

  with DataModule4.MyQuery5 do begin
  DataModule4.MyQuery5.SQL.Clear;
  DataModule4.MyQuery5.SQL.Add('Select * from product ');
  DataModule4.MyQuery5.SQL.Add('where name like');
  DataModule4.MyQuery5.SQL.Add(' ''%' + Edit1.Text + '%''');
  DataModule4.MyQuery5.SQL.Add('AND herstellername like ''%' + ComboBox1.Text + '%''');
    if CheckBox1.Checked then DataModule4.MyQuery5.SQL.Add('AND type_A = 1 ');
    if CheckBox2.Checked then DataModule4.MyQuery5.SQL.Add('AND type_B = 0 ');
  DataModule4.MyQuery5.Open;
end;
end;
ps. Genauso funktioniert es mit RadioButton.

Grüße,

zenobi


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz