Zase jsem se zasekl. Na formuláři mám 6 ComboBoxů, ve kterých jsou načteny jedinečné hodnoty ze šesti různých sloupců tabulky. Tyto ComboBoxy slouží k filtrování záznamů tabulky. Potřebuji, aby příkaz SELECT za klauzulí WHERE vyfiltroval záznamy podle hodnot v ComboBoxech. Příkazy:
DataModule1.MySQLQuery.SQL.Clear;
DataModule1.MySQLQuery.SQL.Add('SELECT * FROM results WHERE competition = :someValue AND class >= :someValue1 AND class <= :someValue2 AND round <= :someValue3 AND hometeam = :someValue4 AND awayteam = :someValue5');
DataModule1.MySQLQuery.Params[0].AsString := MainForm.ComboBox1.Items[MainForm.ComboBox1.ItemIndex];
DataModule1.MySQLQuery.Params[1].AsString := MainForm.ComboBox2.Items[MainForm.ComboBox2.ItemIndex];
DataModule1.MySQLQuery.Params[2].AsString := MainForm.ComboBox6.Items[MainForm.ComboBox6.ItemIndex];
DataModule1.MySQLQuery.Params[3].AsString := MainForm.ComboBox3.Items[MainForm.ComboBox3.ItemIndex];
DataModule1.MySQLQuery.Params[4].AsString := MainForm.ComboBox4.Items[MainForm.ComboBox4.ItemIndex];
DataModule1.MySQLQuery.Params[5].AsString := MainForm.ComboBox5.Items[MainForm.ComboBox5.ItemIndex];
DataModule1.MySQLQuery.Open;
funguje pouze pokud jsou zadané hodnoty ve všech ComboBoxech. Já ale potřebuji filtrovat záznamy i když některé ComboBoxy zůstanou prázdné. Prostě pokud zvolím hodnotu pouze v jednom ComboBoxu, tak se vyfiltrují záznamy jen podle tohoto jediného kritéria, pokud ve dvou, tak se vyfiltrují záznamy podle dvou kritérií atd.
Nemůžu na to přijít, už jsem vyzkoušel složené SQL příkazy, podmínky vložené do SQL příkazu, podmínky při přiřazování hodnot do MySQLQuery.Params, zástupné symboly a nic nefunguje správně. Poradí někdo?