2016-10-26 1 views
0

Dans Lazarus (en utilisant la version 1.6), je voudrais créer un formulaire en utilisant des composants sensibles aux données capables d'afficher et d'éditer master-detail (one-to-many) relation entre deux tables ou plus dans une base de données. Je voudrais savoir s'il est possible d'utiliser des composants IDE intégrés prédéfinis pour une telle tâche, et comment le faire, ou si cela nécessite un code supplémentaire. Supposons, par exemple, qu'il existe deux tables de base de données: des maisons d'édition et des livres, chacune avec son propre champ de clé primaire, mais la table books ne contient pas de données de références croisées depuis le début: les utilisateurs doivent pouvoir sélectionnez un livre, puis décidez à quelle maison d'édition il appartient, en utilisant un DBComboBox, et le formulaire mettra automatiquement à jour la table des livres en insérant l'ID de la maison d'édition dans le champ clé étrangère approprié dans la table books. Plus: les utilisateurs devraient pouvoir créer des maisons d'édition et des livres et les relier à l'exécution. En d'autres termes, j'ai besoin de construire un outil d'édition de GUI capable d'associer des "éléments" d'une table avec leurs "catégories" d'une autre table dans une relation un-à-plusieurs, et je voudrais savoir si c'est Il est possible d'utiliser des contrôles Lazarus prêts à l'emploi et comment les utiliser, ou si cela nécessite un codage supplémentaire.Lazarus IDE: Principales tables de base de données et composants sensibles aux données

Merci à l'avance pour votre temps et de patience :)

Répondre

0

C'est pas maître détail, qui est tout simplement TDBComboBox avec la clé de recherche et les propriétés de valeur correctement configurée. Mais c'est toujours un à un (un livre appartient à une maison d'édition).

J'ai émulé des catégories en ayant simplement deux petites grilles avec leurs propres requêtes. On liste les catégories pour cet article, une pour celles qui ne sont pas pour cet article, puis deux flèches entre elles (qui n'obtiennent que la clé primaire de la catégorie et la stockent ou la suppriment de la table croisée)