AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Pivot/Kreuztabellen in Firebird mit SQL erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Pivot/Kreuztabellen in Firebird mit SQL erstellen

Ein Thema von Chemiker · begonnen am 15. Apr 2009 · letzter Beitrag vom 22. Apr 2009
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

Re: DBGrid Spalten mit einem SQL –String anders anordnen

  Alt 17. Apr 2009, 08:36
Hallo,

für meinen Editor habe ich mir mal dieses Script mit Pascalscript geschrieben.
Delphi-Quellcode:
program Sql2Source;
Var
        i : Integer;
begin
  Output.Clear;
  Output.Add('with qry.sql do begin');
  Output.Add(' clear;');
  for i := 0 to Editor.Count - 1 do begin
    Output.Add(' Add(''' + AnsiReplaceText(Editor[i],'''','''''') + ''');');
  end;
  Output.Add('end;');
  Log.Clear;
  Log.Add('SQLString := '''' ');
  for i := 0 to Editor.Count - 1 do begin
    Log.Add(' + ''' + AnsiReplaceText(Editor[i],'''','''''') + ' ''');
  end;
  Log[Log.Count - 1] := Log[Log.Count - 1] + ';';
end.
Da kommt dann dieses
Delphi-Quellcode:
with qry.sql do begin
  clear;
  Add('select MW_DATUMUHRZEIT,');
  Add(' SUM (IIF (MW_MSID = ''K01T1'', MW_MW,0)) as K01T1,');
  Add(' SUM (IIF (MW_MSID = ''K01D1'', MW_MW,0)) as K01D1');
  Add('From mw_tabelle');
  Add('where (MW_MSID LIKE ''K01%'')');
  Add(' and (MW_DatumUhrZeit between ''05.03.2008'' and ''06.03.2008'')');
  Add('group by MW_DATUMUHRZEIT');
end;
und jenes
Delphi-Quellcode:
SQLString := ''
 + 'select MW_DATUMUHRZEIT, '
 + ' SUM (IIF (MW_MSID = ''K01T1'', MW_MW,0)) as K01T1, '
 + ' SUM (IIF (MW_MSID = ''K01D1'', MW_MW,0)) as K01D1 '
 + 'From mw_tabelle '
 + 'where (MW_MSID LIKE ''K01%'') '
 + ' and (MW_DatumUhrZeit between ''05.03.2008'' and ''06.03.2008'') '
 + 'group by MW_DATUMUHRZEIT ';
heraus und das leidige '-Thema ist erledigt. Eventuell kannst Du ja damit was anfangen und Dir ein kleines Delphiprogrämmelchen schreiben, das aus einem SQL den passenden Quelltext bastelt. Sollte mit wenig Aufwand zu realisieren sein und hilft Stunden bei der Fehlersuche zu sparen. Meine SQL's werden in der entsprechenden Datenbankoberfläche erstellt und getestet und dann durch das Script gejagt und fertig ist.

Editor ist das Eingabefeld (TSynEdit) des Editors, Output und Log sind Ausgabefelder (ebenfalls TSynEdit), die als TStrings ans Script übergeben werden. Mit drei TMemos (und 'nem Dutzend zusätzlicher Quelltextzeilen) sollte das in ein paar Minuten zu realisieren sein.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 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