Comment puis-je utiliser la boucle For dans Firebird?
Quelqu'un peut m'expliquer la syntaxe de la For
boucle dans Firebird?
Voici le code que j'ai pour l'instant:
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
Mise à jour : Merci pour lui donner un essai, mais je ne vois aucune différence majeure entre la requête que j'ai écrit et de requête inclus dans les réponses. Bien que la requête ci-dessus s'exécute avec succès à ma fin, mais quand je vois des données dans un tableau, il se produit aucune mise à jour.
En fait j'ai été faire un v. erreur stupide, j'ai été l'exécution de modifier la procédure stockée requête qui s'exécute avec succès et j'ai été en supposant que ce serait de faire les changements nécessaires. plus tard, j'ai exécuté la procédure stockée et cela a fonctionné tout à fait . Merci à tous pour épargner votre temps 🙂 ..
OriginalL'auteur Rohit | 2011-08-18
Vous devez vous connecter pour publier un commentaire.
Pour opérateur dans Firebird n'est pas comme Pour, disons, dans Pascal où il incrémente variable de boucle et exécute un bloc de code jusqu'à la valeur d'arrivée seront respectées.
Dans Firebird Pour opérateur prend un ensemble d'enregistrements (suite de l'exécution d'une requête) et les boucles à travers eux. Pour chaque enregistrement, un bloc de code est exécuté. Éventuellement des valeurs de certains champs de l'enregistrement peut être mis dans les variables locales de s'enrôle dans EN section. Les valeurs de ces variables pourrait être utilisé à l'intérieur d'un bloc de code.
Dans votre exemple, une requête:
Sera exécuté, et pour chaque enregistrement dans le jeu de résultats sera exécuté opérateur:
Pour elle variable :Var contiendra la valeur de la table1.Colonne1 de l'enregistrement en cours.
OriginalL'auteur Andrej Kirejeŭ
Pour chaque ligne dans la table "un" exécuter l'opérateur d'insertion.
Tmp contient la valeur de la ligne actuelle à partir de la table "un".
P. S. désolé pour mon anglais
OriginalL'auteur bartolo-otrit