Detaillierte Analyse der Struktur Ihrer Datenbank

Wussten Sie, dass Sie sehr detaillierte Informationen über eine Tabelle, ein Feld, einen Index, eine Beziehung oder sogar über die gesamte Datenbankstruktur abrufen können? Diese Art von Informationen ist immer sehr nützlich für die Analyse oder die Selbstbeobachtung. Natürlich können Sie auch die veralteten 4D Pack Befehle verwenden: _AP Get field infos und _AP Get table info. Eine andere Möglichkeit ist die Verwendung von SQL system tables.

Mit keinem dieser Befehle können Sie alle Informationen abrufen. Warum also ein Plug-in oder SQL verwenden, wenn Sie einen 4D Befehl verwenden können? Der Befehl EXPORT STRUCTURE Befehl gibt die vollständige Datenbankstrukturdefinition in einem XML-Baum zurück . Diesen Befehl gibt es seit 4D v14 R4.

Mit diesem Befehl können Sie zum Beispiel herausfinden:

  • ob eine Tabelle journalisiert ist,
  • ob ein Feld ein Primärschlüssel ist,
  • ob ein Trigger mit einem Feld verbunden ist,
  • ob eine Tabelle oder ein Feld in 4D Mobile Service offengelegt sind.

Wir stellen Ihnen drei Methoden zur Verfügung, um den XML-Baum zu parsen und das Ergebnis in einer Objektvariablen zu speichern. Anschließend können Sie dieses Objekt mit den 4D Objektbefehlen bearbeiten, um eine Tabelle, ein Feld, einen Index oder eine Relation zu analysieren, anzuzeigen oder eine andere Aktion auszuführen, die Sie wünschen.

Der Quellcode jeder Methode sowie die vollständige Beispieldatenbank (Version 4D v16) sind verfügbar:

Sie können diese Befehle gerne in Ihre Datenbank importieren, sie sind sofort einsatzbereit!

Informationen über Tabellen und Felder

4D methodDie Methode getTablesAndFields Methode parst den XML-Baum und ruft die Tabellen- und Feldinformationen ab. Das Ergebnis wird in einer Object-Variablen gespeichert. Dabei handelt es sich um einen Auszug eines Objekts im JSON-Format, das die Informationen über die Tabelle „Table_1“ Tabelle und eines der Felder mit dem Namen „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"
	} , {...} ]
}

Informationen über Indizes

4D methodDie Methode getIndex Methode parst den XML-Baum und ruft die Indexinformationen ab. Das Ergebnis wird in einer Object-Variablen gespeichert. Dies ist ein Auszug eines Objekts im JSON-Format; Sie können die Informationen über den „Index Name“ Index des „[Table_1]Champ_Alp“ Feldes:

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

Informationen über Beziehungen

4D methodDie Methode getRelations Methode parst den XML-Baum und ruft die Beziehungsinformationen ab. Das Ergebnis wird ebenfalls in einer Object-Variablen gespeichert. Dies ist ein Auszug der Beziehungsinformationen zwischen „[Table_1]ID“ und „[Table_2]ID“ im JSON-Format:

{
"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"
	} ]
}

Ersetzen Sie veraltete 4D Pack Befehle

4D methodSie können auch den EXPORT STRUCTURE verwenden, um die veralteten Befehle von 4D Pack zu ersetzen. Wir stellen Ihnen zwei 4D Methoden zur Verfügung, die so implementiert wurden, dass sie sich wie die Befehle _AP Get field infos und _AP Get table info Befehle zu reagieren:

  • Get table infoAbrufen von Informationen über eine Tabelle
  • Get field infoAbrufen von Informationen über ein Feld
Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.