Analyse détaillée de la structure de votre base de données

Traduit automatiquement de Deepl

Saviez-vous que vous pouvez récupérer des informations très détaillées sur une table, un champ, des index, une relation ou même sur la structure complète de la base de données? Ce type d’information est toujours très utile à des fins d’analyse ou d’introspection. Bien sûr, vous pouvez utiliser les commandes dépréciées de 4D Pack : _AP Get field infos et _AP Get table info. Une autre option consiste à utiliser le site SQL system tables.

Aucune d’entre elles ne vous permet de récupérer toutes les informations. Alors pourquoi utiliser un plug-in ou SQL alors que vous pourriez utiliser une commande 4D ? La commande EXPORT STRUCTURE renvoie la définition complète de la structure de la base de données dans un arbre XML. Cette commande existe depuis 4D v14 R4.

Par exemple, avec cette commande, vous pouvez savoir :

  • si une table est journalisée,
  • si un champ est une clé primaire,
  • si un déclencheur est associé à un champ,
  • si une table ou un champ sont exposés dans 4D Mobile Service.

Nous vous fournissons trois méthodes pour analyser l’arbre XML et pour enregistrer le résultat dans une variable Objet. Ensuite, vous pouvez manipuler cet objet avec les commandes d’objets 4D pour analyser, afficher ou faire toute autre action que vous souhaitez sur une table, un champ, un index ou une relation.

Le code source de chaque méthode ainsi que l’exemple complet de la base de données (version 4D v16) sont disponibles :

N’hésitez pas à importer ces commandes dans votre base de données, elles sont prêtes à être utilisées !

Informations sur les tables et les champs

4D methodLa méthode getTablesAndFields analyse l’arbre XML et récupère les informations sur les tables et les champs. Le résultat est stocké dans une variable Object. Il s’agit d’un extrait d’un objet au format JSON qui contient les informations sur la table « Table_1« et un des champs nommés « ID » :

{
"id": "1",
"leave_tag_on_delete": "true",
"name": "Table_1",
"uuid": "0F8DD65FCF8E4CBB882B2FF15C9C8A12",
"trigger_insert": "true",
"comment": "Comments on my Table_1",
"displayable_fields_count": "14",
"color": {"alpha":"0","blue":"255","green":"255","red": "255"},
"coordinates": {"height":"355","left":"62","top":"70", "width":"152"},
"Field": [ {
	"autosequence": "true",
	"id": "1",
	"name": "ID",
	"not_null": "true",
	"type": "4",
	"unique": "true",
	"uuid": "1DC7531F29684D699D9FE9686AB71009",
	"index_ref": [ { "uuid": "7260EA8E18A1477A90F068F70754C384" } ],
	"pk": "true"
	} , {...} ]
}

Informations sur les index

4D methodLa méthode getIndex analyse l’arbre XML et récupère les informations de l’index. Le résultat est stocké dans une variable Object. Il s’agit d’un extrait d’un objet au format JSON ; vous pouvez voir les informations sur l’index « Index Name » du champ « [Table_1]Champ_Alp » :

{
"kind": "regular",
"name": "Index Name",
"type": "7",
"uuid": "42E921F874EF44B4A2A08AD82CA53D91",
"field": [ {
	"name": "Champ_Alp",
	"uuid": "BC7FE443CAC344F993655D4EDE731D87",
	"table_name": "Table_1",
	"table_uuid": "0F8DD65FCF8E4CBB882B2FF15C9C8A12"
	} ]
}

Informations sur les relations

4D methodLa méthode getRelations analyse l’arbre XML et récupère les informations de la relation. Le résultat est également stocké dans une variable Object. Il s’agit d’un extrait de l’information sur la relation entre « [Table_1]ID » et « [Table_2]ID » au format JSON :

{
"auto_load_1toN": "false",
"auto_load_Nto1": "true",
"name_1toN": "Link_1_return",
"name_Nto1": "Link_1",
"uuid": "370180DABD8545D690CDC79E15D31215",
"choice_field": "0",
"entry_autofill": "false",
"entry_create": "false",
"entry_wildchar": "false",
"color": {"alpha":"0","blue":"255","green":"255","red":"255"},
"related_field": [ {
	"kind": "source",
	"name": "ID",
	"uuid": "1DC7531F29684D699D9FE9686AB71009",
	"table_name": "Table_1",
	"table_uuid": "0F8DD65FCF8E4CBB882B2FF15C9C8A12"
	} , {
	"kind": "destination",
	"name": "ID",
	"uuid": "B71D191358954A5783210E2447CD1A27",
	"table_name": "Table_2",
	"table_uuid": "6E23C70A973743B28809D9C3F3CC9060"
	} ]
}

Remplacer les commandes obsolètes de 4D Pack

4D methodVous pouvez également utiliser la commande EXPORT STRUCTURE pour remplacer les commandes dépréciées du Pack 4D. Nous vous fournissons deux méthodes 4D qui ont été implémentées afin de répondre comme les méthodes _AP Get field infos et _AP Get table info pour répondre aux commandes :

  • Get table info: récupère des informations sur une table
  • Get field info: récupère des informations sur un champ
Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.