Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit

  Alt 6. Mai 2011, 14:30
Die Aufgabenstellung hat ein bißchen was von einer Pivot-Tabelle. Gibts da nix?

Ansonsten erzeugt folgende Funktion SQL für eine Art Pseudo-Pivot-Tabelle:

Die Zeile
s.Add('Where day ='+DerGesuchteTag);
muss natürlich irgendwie angepasst werden.

Wenn Stundenzeiträume gewünscht werden wird das Ganze natürlich nochetwas komplizierter...

Delphi-Quellcode:
function TForm1.SQL_Main: String;
var s : TStringlist;
begin
  s:= TStringlist.Create;
  s.Add('SELECT UHRZEIT');

  s.Add(SQL_SenderZeit);

  s.Add('FROM');
  s.Add('(');
  s.Add('Select Distinct prg_begin as UHRZEIT From epg_program');
  s.Add('Where day ='+DerGesuchteTag);
  s.Add(') D');
  Result:=s.Text;
  s.Free;
end;


function TForm1.SQL_SenderZeit: String;
var
  s : TStringList;
  q : TADOQuery;
begin
  s := Tstringlist.Create;
  q := TADOQuery.Create(nil);
  q.Connection:= ;//hier eine ADO-Connection übergeben
  q.SQL.Add('Select id, name From epg_channels');
  q.Open;
  q.First;
  while not q.Eof do
    begin
    s.Add('(');
    s.Add('Select name From epg_program');
    s.Add('Where day = '+DerGesuchteTag);
    s.Add('And prg_begin = D.Uhrzeit');
    s.Add(') As '+q.fieldbyname('name').AsString);
    q.Next;
    if not q.Eof then s.Add(',')
    end
  Result:=s.Text;
  s.Free;
  q.Free;
end;
Ralph

Geändert von Jumpy ( 6. Mai 2011 um 15:10 Uhr)
  Mit Zitat antworten Zitat