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.