4D v11 SQL et les sous-tables

Support Technique 4D

- Titre : 4D v11 SQL et les sous-tables

- Auteur : Support Technique 4D

- Parution : 8 juillet 2008

- Licence : Copyright ® 2008 4D s.a.. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

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