Votre code devrait ressembler plus à ceci. Veuillez noter qu'il est supposé que le Connecteur est connecté à un Broker approprié, que la connexion à la base de données est active et que le schéma de la base de données a été créé (vous pouvez facilement faire l'étape suivante à partir de Model Explorer).
var
Band : TBand;
begin
// Query the database for all TCountry instances or descendants
CountrySelector.Close;
CountrySelector.Command.Text := 'SELECT * FROM ANY TCountry';
CountrySelector.Open;
if ContactSelector.ObjectCount > 0 then
begin
Band := TBand.Create(Connector);
try
// Take currently selected Country and assign to Band's Country property
// Reference counting is handled automatically
Band.Country := CountrySelector.CurrentObject as TCountry;
Band.Store;
finally
Band.Free; // Free reference to Band so we do not leak an object
end;
end;
end;
Je devrais également mentionner que je n'utilise pas le sélecteur très souvent puisqu'il ne répond pas à mes conditions d'application typiques. Mes utilisateurs récupèrent souvent des enregistrements 20k + de Firebird en utilisant les grilles DevExpress Quantum et attendent des temps de réponse de manière constante en moins de 2 secondes. Pour répondre à cette exigence, IBExpert (un outil excentrique mais par ailleurs excellent) a nécessité une conception et un réglage très minutieux, car mes requêtes couvrent souvent plusieurs tables et ont des exigences de filtrage complexes. Ce que je peux dire à propos d'IO, c'est qu'il facilite la modélisation des données puisque la conception est réduite à un point et cliquez sur le processus en utilisant Model Explorer. IO est également un bon framework de liaison de données car il vous permet d '«exposer» même des graphiques d'objets complexes en tant qu'ensembles de données et de lier les propriétés aux contrôles visuels. L'autre partie que j'aime est que je n'ai plus besoin d'embêter avec la création manuelle de requêtes d'insertion ou de mise à jour et la définition de valeurs de colonne pour ajouter ou modifier des objets persistants. IO fait cela et plus pour vous dans les coulisses avec très peu de codage.
David
20 + K est une quantité excentrique. Mon approche principale est de ne pas trop utiliser l'inspecteur d'objets de Delphi. Cependant, étant donné que Country fait référence à une table de recherche avec peu d'enregistrements, je l'utilise de cette façon. J'expérimente toujours avec IO, et j'ai réussi à progresser autant que je m'y attendais. En utilisant "stocké" j'ai le design de table que je désire. Et la facilité de persistance obtient 10 sur 10. Maintenant, je vais essayer de concevoir ma propre validation sur IO. J'essaierai d'utiliser les modules de données et l'héritage de forme. Il est temps de passer à autre chose :) – user114285