AW: Daten in Tabelle korrigieren
Hallo,
vielen Dank für die schnelle Antwort!!! Hier werden Daten angezeigt!
Delphi-Quellcode:
Hier kommt die Fehlermeldung: Table 'nedcom.tmptab' doesn't exist
SELECT WAAUNR, WAAUPO, OAAGNR
FROM as400temp as A WHERE OATLKZ = '' AND OAAGNR < ( SELECT Max( OAAGNR ) FROM as400temp WHERE WAAUNR = A.WAAUNR AND WAAUPO = A.WAAUPO AND OATLKZ = '9' ) AND OAMANR not REGEXP 'HD|FA|KO';
Delphi-Quellcode:
Hier werden die gleichen Daten wie oben angezeigt
CREATE TEMPORARY TABLE tmpTab
SELECT WAAUNR, WAAUPO, OAAGNR FROM as400temp as A WHERE OATLKZ = '' AND OAAGNR < ( SELECT Max( OAAGNR ) FROM as400temp WHERE WAAUNR = A.WAAUNR AND WAAUPO = A.WAAUPO AND OATLKZ = '9' ) AND OAMANR not REGEXP 'HD|FA|KO'; SELECT * FROM tmpTab;
Delphi-Quellcode:
Gruß
SELECT WAAUNR, WAAUPO, OAAGNR
FROM as400temp as A WHERE IFNULL( OATLKZ, '' ) = '' AND OAAGNR < ( SELECT Max( OAAGNR ) FROM as400temp WHERE WAAUNR = A.WAAUNR AND WAAUPO = A.WAAUPO AND OATLKZ = '9' ) AND OAMANR not REGEXP 'HD|FA|KO'; Patrick |
AW: Daten in Tabelle korrigieren
Führst du etwa jedes Statement einzeln aus?
|
AW: Daten in Tabelle korrigieren
Ich habe die ANweisungen erst zusammen ausgeführt, dann aber auch einzeln versucht...
Kann es sein, dass ich die Drop-Anweisung einzeln ausführen muss? Ohne die habe ich es jetzt irgendwie ans Laufen bekommen, habe aber keine Ahnung warum. Ich verwende den QueryBrowser. Kann es auch damit zusammenhängen? Ich bin etwas verwirrt... |
AW: Daten in Tabelle korrigieren
Also, wenn ich die Anweisungen jetzt einzeln durchgehe, scheinen sie zu laufen, aber zusammen geht im Query-Browser nicht. ABer vielleicht hat mein Programm damit keine Probleme. Ich bin zurzeit noch nicht an dem Punkt, dass ich mein Programm testen kann. Ich programmiere also gerade blind. Ich muss noch zwei große Proceduren fertig bekommen, dann kann ich das Programm testen...
Ich werde gleich mal eben ein kleines eigenes Programm machen... Melde mich gleich wieder. Danke Patrick |
AW: Daten in Tabelle korrigieren
Hallo Zusammen,
mit dieser Procedure funktioniert es:
Delphi-Quellcode:
Anregungen und Verbesserungen werden gerne angenommen!
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; Vielen Dank für die Unterstützung!!! Gruß Patrick |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz