Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Daten in Tabelle korrigieren

  Alt 23. Jan 2013, 21:46
Hallo Zusammen,

mit dieser Procedure funktioniert es:
Delphi-Quellcode:
procedure TMain.ButtonAktualisierenClick(Sender: TObject);
var AGS: string;
      I: integer;
      Query: TUniQuery;
begin
   Query:=Main.MySelectQuery; //Normalerweise wird die Query der Procedure der Klasse übergeben, das habe hier nur für den Test gemacht...
   //Rückmeldefehler beheben
   AGS:='';
   Query.SQL.Clear; //AGs die nicht korrigiert werden sollen holen
   Query.SQL.Add('select Wert from einstellungen ');
   Query.SQL.Add('where einstellung= :Einstellung ');
   Query.ParamByName('Einstellung').AsString:='Rueckm.nicht.korrigieren';
   Query.Open;
   if not Query.Eof then begin
      AGS:=Query.Fields.Fields[0].Value;
      Query.Next;
      if Query.RecordCount>1 then begin
         for I:=1 to Query.RecordCount -1 do begin
            AGS:=AGS+'|'+Query.Fields.Fields[0].Value;
            Query.Next;
         end;
      end;
   end;

   Query.SQL.Clear;
   Query.SQL.Add('CREATE TEMPORARY TABLE tmpTab ');
   Query.SQL.Add('SELECT WAAUNR, WAAUPO, OAAGNR ');
   Query.SQL.Add('FROM as400temp as A ');
   Query.SQL.Add('WHERE OATLKZ = ''''');
   Query.SQL.Add('AND OAAGNR < ');
   Query.SQL.Add('( SELECT Max( OAAGNR ) ');
   Query.SQL.Add('FROM as400temp ');
   Query.SQL.Add('WHERE WAAUNR = A.WAAUNR ');
   Query.SQL.Add('AND WAAUPO = A.WAAUPO ');
   Query.SQL.Add('AND OATLKZ = ''9'' ) ');
   Query.SQL.Add('AND OAMANR not REGEXP '''+AGS+'''; ');

   Query.SQL.Add('UPDATE as400temp ');
   Query.SQL.Add('SET OATLKZ = ''9''' );
   Query.SQL.Add(' WHERE ( WAAUNR, WAAUPO, OAAGNR ) IN ( SELECT WAAUNR, WAAUPO, OAAGNR ');
   Query.SQL.Add('FROM tmpTab ); ');

   Query.SQL.Add('DROP TABLE tmpTab; ');

   Query.Execute;
end;
Anregungen und Verbesserungen werden gerne angenommen!


Vielen Dank für die Unterstützung!!!

Gruß
Patrick
Patrick
  Mit Zitat antworten Zitat