Produit : 4D v11 SQL · Plateforme : Mac & Windows ♪
Les sous-tables sont supportées en 4D v11 SQL , mais avec certaines limitations :
· La création de sous-tables n'est pas possible.
· Les sous-tables existantes sont converties automatiquement en tables liées, mais uniquement les sous-tables de premier niveau !
· Les sous-tables de deuxième niveau et plus sont supprimées durant la conversion. 4D affiche un dialogue d'information.
Pendant la conversion d'une base de données en 4D v11 SQL, tous les champs de type sous-table sont
convertis en tables N liées et
rattachées à la table 1 par un lien spécial.
Un champ est ajouté dans la nouvelle table liée pour jouer le rôle de clé étrangère (foreign key).
Les implications qui en découlent sont :
· Toutes les commandes relatives aux sous-champs fonctionneront encore dans la base convertie.
Mais, si le lien spécial est supprimé (et c'est irréversible), ces commandes ne fonctionneront plus.
Il n'est pas possible de recréer ce lien "spécial sous-table".
Une fois supprimé, tout le code qui concernait cette sous-table doit donc être modifié
pour fonctionner avec la nouvelle table liée.
· Puisque les sous-tables sont converties en tables "standards",
le nombre total de tables dans la base de données augmente.
Ces tables seront créées après que toutes les tables "standards" aient été converties. Par exemple si la base de données contient 10 tables,
la première sous-table convertie deviendra la table numéro 11.
· Dans les versions précédentes de 4D, lorsque l'on chargeait un enregistrement,
tous ses sous-enregistrements étaient aussi chargés.
Avec 4D v11 SQL, les sous-enregistrements ne sont pas chargés puisqu'ils sont maintenant
des enregistrements liés stockés dans une table liée et non plus une sous-table.
C'est pourquoi les commandes comme DUPLIQUER ENREGISTREMENT ou ENVOYER ENREGISTREMENT ne
s'occupent plus des sous-enregistrements.
· Quand on utilise la commande ENVOYER ENREGISTREMENT,
le format 4D v11 SQL ne peut être lu que par une base 4D v11 SQL.
Les versions antérieures ne peuvent pas lire le format 4D v11 SQL.
Par contre, la commande ENVOYER ENREGISTREMENT utilisée dans les anciennes versions utilise un format
qui peut être lu par 4D v11 SQL,
à condition que la structure de la table dont proviennent les enregistrements ne comportent pas de sous-tables.
Voir également la note technique (en accès partenaire) sur le site de 4D :
4D v11 SQL : conversion avec sous-tables