FireDAC.Comp.DataSet.TFDDataSet.RefreshRecord

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function RefreshRecord(AClearRow: Boolean = True): Boolean;

C++

bool __fastcall RefreshRecord(bool AClearRow = true);

Propriétés

Type Visibilité  Source Unité  Parent
function public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet

Description

Relit les valeurs de champs de l'enregistrement en cours à partir d'une source de données.

Utilisez RefreshRecord pour annuler toutes les modifications de l'enregistrement en cours et relire cet enregistrement à partir d'une source de données. Une méthode similaire, TDataSet.Refresh, remplace le contenu entier de l'ensemble de données en re-exécutant la commande SQL.

Pour relire l'enregistrement, FireDAC effectue les étapes suivantes :

  • Si le gestionnaire d'événement OnUpdateRecord est assigné, il est appelé avec ARequest en prenant la valeur de arFetchRow.
  • Si le gestionnaire d'événement n'est pas assigné ou s'il renvoie AAction avec la valeur eaDefault, alors :

Si la requête vers une source de données ne renvoie aucune ligne (par exemple, lors de la suppression d'un enregistrement), lorsque UpdateOptions.RefreshDelete est True, un enregistrement est retiré d'un ensemble de données. Sinon, une exception est déclenchée. Lorsque le paramètre AClearRow est défini sur True (valeur par défaut), l'enregistrement est initialement effacé. Sinon, les valeurs de lecture remplacent les valeurs de colonne correspondantes.

La méthode renvoie True si un enregistrement est actualisé. Sinon, elle renvoie False lorsque l'enregistrement est supprimé d'un ensemble de données.

Exemple

FDQuery1.UpdateObject := ADUpdateSQL;  // PL/SQL block calling packaged procedure returning customer data by its ID  FDUpdateSQL.FetchRowSQL.Text := 'begin cust_pack.read_cust_data(:new_name, :new_company, :new_state, :old_id); end;';  // Is always required to set up output parameters  with FDUpdateSQL.Commands[arFetchRow] do begin    Params[0].ParamType := ptOutput;    Params[0].DataType := ftString;    Params[1].ParamType := ptOutput;    Params[1].DataType := ftString;    Params[2].ParamType := ptOutput;    Params[2].DataType := ftString;  end;  ...  FDQuery1.RefreshRecord;

Voir aussi