Gestion des relations des classes entité de service distant

De Wiki1000
Version du 19 août 2011 à 14:13 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Sommaire

Relations

Valeur des clés

Les relations des classes d'entité de service distant sont définies par les valeurs des clés primaires des ressources, c'est à dire les valeurs des propriétés SDataKey.

Ces valeurs sont stockés dans les attributs techniques oidXXX utilisés par les relations.

Sérialisation

La propriété de composition de la relation défini le style de sérialisation :

Pour une relation de composition l'objet lié est inclus dans la sérialisation.
Pour un relation simple l'objet lié est référencé par la valeur de sa clé SDataKey.

Références

Lien par valeur

Dans ce cas on utilise une instance représentant l'objet lié pour définir la référence :

function CreateRemoteA(const aText:string; const iKeyB:string):String;
Var inst:RE_ClassA; instB:RE_ClassB; aKey:String;
begin
  // Create a A object with a reference on the B object
  // The reference is defined by value
 
  // Retreive the instance of B from the server
  instB := RE_ClassB.Get(iKeyB);
  if not Assigned(instB) then raise Exception.Create('B not found');
 
  // Create the A object
  inst := RE_ClassA.Create;
  inst.aString  := aText;
  inst.Ref1 := instB; // by value
  inst.Post;
  Result := inst.SDataKey;
end;

Lien par clé

Dans ce cas on utilise la clé primaire de la ressource pour définir la référence :

function CreateRemoteA(const aText:string; const iKeyB:string):String;
var inst:RE_ClassA; instB:RE_ClassB; aKey:String;
begin
  // Create a A object with a reference on the B object
  // The reference is defined by the SDataKey value of the B object
 
  inst := RE_ClassA.Create;
  inst.aString  := aText;
  inst.oidRef1 := iKeyB; // by key
  inst.Post;
  Result := inst.SDataKey;
end;


Listes

Voir aussi:

Classe entité de service distant (stereotype)Développement DSM

Outils personnels