Wie benutze ich die For-Schleife in Firebird?
Kann mir jemand erklären die syntax der For
Schleife in Firebird?
Hier ist der code, den ich bisher:
As
Declare variable Var1 integer;
begin
Insert into table1
-- Select query to insert some enteries in table 1 - Done successfully.
FOR SELECT table1.Column1 from table1 into :Var1
Do
Begin
Update tableabc.column1 = (select tablexyz. column1 from tablexyz where tablexyz.ID = :Var1) where tableabc.ID = :Var1
End
Update : vielen Dank, dass Sie es versuchen, aber ich nicht sehen keinen großen Unterschied zwischen der Abfrage, die ich schrieb und die Abfrage zu Antworten. Obwohl die obige Abfrage erfolgreich ausgeführt wird, auf mein Ende, aber wenn ich sehe, die Daten in der Tabelle erfolgt kein update.
Tatsächlich, ich mache v. dummen Fehler, ich war die Ausführung von alter stored procedure-Abfrage - die verläuft erfolgreich, und ich war der Annahme, dies würde die notwendigen änderungen vornehmen. später habe ich ausgeführt, die gespeicherte Prozedur, und es funktionierte und dieses dann perfekt . Vielen Dank an alle für die Schonung Ihrer Zeit 🙂 ..
InformationsquelleAutor Rohit | 2011-08-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Betreiber in Firebird ist nicht wie Für, sagen wir, in Pascal, wo er Schritten loop variable und führt einen code-block bis zum fertig stellen-Wert erreicht werden.
In Firebird Für - operator nimmt einen Satz von Datensätzen (Ergebnis der Ausführung einer Abfrage) und durchläuft Sie. Für jeden Datensatz einen code-block ausgeführt werden. Optional Werte einiger Felder aus dem Datensatz genommen werden konnte in die lokalen Variablen eingetragen in IN Abschnitt. Werte solcher Variablen, die verwendet werden könnten, innerhalb eines code-block.
In Ihrem Beispiel einer Abfrage:
Ausgeführt werden und für jeden Datensatz in der Ergebnismenge ausgeführt werden operator:
Dafür variable :Var enthält den Wert von Tabelle1.Column1 aktuellen Datensatz.
InformationsquelleAutor Andrej Kirejeŭ
Für jede Zeile in der Tabelle "one" führen Sie den operator einfügen.
Tmp enthält Wert der aktuellen Zeile aus der Tabelle "one".
P. S. sorry für mein Englisch
InformationsquelleAutor bartolo-otrit