« Vue locale (langage) » : différence entre les versions
(Page créée avec « {{tahoe}} Les vues locales sont des type de données vues déclarées localement à l'intérieur d'une opération. Par exemple le code suivant déclare une vue MyView et ef… ») |
m (a renommé Type vue locale (langage) en Vue locale (langage)) |
(Aucune différence)
| |
Version du 2 septembre 2011 à 07:28
Les vues locales sont des type de données vues déclarées localement à l'intérieur d'une opération.
Par exemple le code suivant déclare une vue MyView et effectue une recherche sur cette vue :
function foo(const S:string):Integer;
Type
MyView = viewof(ClassA)
unCode:string = unCodeA;
unEntier:Integer = refB.unEntierB;
end;
var inst:MyView;
begin
inst := MyView.Find('unCode=%1','',true,['B1']);
if Assigned(inst) then
begin
...
end;
end
Le périmètre du type est limité à la procédure, il n'est donc pas possible de passer les objets de la vue en paramètre à d'autres fonctions (pour cela utilisez une vue globale).
La syntaxe pour définir une vue locale :
Type
NomDeVue = ViewOf(NomDeClassePrincipale)
Attribut : Type;
Attribut : Type = AliasDe;
end;
Les vues peuvent utiles pour effectuer des traitement sur des classes complexes, par exemple il est possible d'utiliser un curseur sur une classe vue :
function foo(const S:string):Integer;
Type
MyView = viewof(ClassA)
newCode:string;
unCode:string = unCodeA;
unEntier:Integer = refB.unEntierB;
end;
var inst:MyView; cursor:MyViewCursor
begin
Result := 0;
cursor := MyView.CreateCursorWhere(''unCode=%1'','''',true,[S]);
foreach inst in cursor do
begin
Result := Result + inst.unEntier;
end;
end;
Voir aussi :