so jetzt hab ich doch noch ein problem. und zwar zeigt er mir seit heute früh für jede verbindung die in der zwischentabelle steht, jeden ds einmal an. also habe ich jetzt teilweise 4 oder bis zu 8 mal die selben bilder untereinander stehen.
gestern nachmittag war das irgendwie nicht so...
hier meine anzeigen prozedur zum jetzigen zeitpunkt:
Delphi-Quellcode:
procedure anzeigen(befehl: String);
var
schon: boolean;
begin
schon:= false;
dm.dsetbilder.Close;
dm.dsetbilder.SelectSQL.Clear;
dm.dsetbilder.SelectSQL.Add('select * from bilder b left join '+
'zwbildertags x on x.bildid=b.bid left join tags t '+
'on t.tid=x.tagid left join '+
'zwbilderprogramme z on z.bildid=b.bid left join programme p '+
'on p.pid=z.programmid ');
if frmhaupt.CheckBox1.Checked then // bild
begin
dm.dsetbilder.SelectSQL.Add('where b.name containing upper(:WERT) ');
schon:= true;
end;
if frmhaupt.CheckBox2.Checked then // programm
begin
if schon then dm.dsetbilder.SelectSQL.Add('or Upper(p.namep) '+
'containing UPPER(:WERT) ')
else dm.dsetbilder.SelectSQL.Add('where Upper(p.namep) '+
'containing UPPER(:WERT) ');
schon:= true;
end;
if frmhaupt.CheckBox3.Checked then // tag
begin
if schon then dm.dsetbilder.SelectSQL.Add('or Upper(t.namet) '+
'containing UPPER(:WERT) ')
else dm.dsetbilder.SelectSQL.Add('where Upper(t.namet) '+
'containing UPPER(:WERT) ');
schon:= true;
end;
if befehl <> 'alleanzeigen' then
dm.dsetbilder.ParamByName('WERT').AsString := befehl;
dm.dsetbilder.Open;
if dm.dsetbilder.IsEmpty then showmessage('Keine Icons gefunden');
end;