Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#9

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