Support unifié de RETURNING (FireDAC)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Prétraitement du texte des commandes (FireDAC)


Sommaire

Description

FireDAC fournit la séquence d'échappement {INTO } pour simplifier et unifier la gestion de RETURNING dans Firebird, Oracle et PostgreSQL :

FDQuery1.SQL.Text := 'insert into MyTab (f2, f3) values (:f2, :f3) returning f1 {into :f1}';
FDQuery1.Params[0].AsString := 'qwe';
FDQuery1.Params[1].AsInteger := 100;
FDQuery1.ExecSQL;
FDQuery1.Params[2].Value; // Value of a first parameter, listed in INTO

Les paramètres contenus dans {INTO } sont définis en tant que ptInputOutput. FireDAC utilise RETURNING {INTO} dans le cadre des commandes SQL INSERT/UPDATE, automatiquement générées pour valider des mises à jour dans une base de données.

Remarque : FireDAC ne peut pas supporter directement la phrase INTO de Firebird, car elle est supportée uniquement par PSQL, et non par DSQL, qui est utilisé par FireDAC. Cependant, vous pouvez utiliser la clause d'échappement {INTO }. Avec Firebird, il est également possible d'utiliser la méthode Open à la place de ExecSQL:
FDQuery1.SQL.Text := 'insert into MyTab (f2, f3) values (:f2, :f3) returning f1';
FDQuery1.Params[0].AsString := 'qwe';
FDQuery1.Params[1].AsInteger := 100;
FDQuery1.Open;
FDQuery1.Fields[0].Value; // Value of a first field, listed in RETURNING