Analisi dettagliata della struttura del database

Tradotto automaticamente da Deepl

Sapevate che è possibile recuperare informazioni molto dettagliate su una tabella, un campo, un indice, una relazione o addirittura sull’intera struttura del database? Questo tipo di informazioni è sempre molto utile per scopi di analisi o di introspezione. Naturalmente, si possono usare i comandi deprecati di 4D Pack: _AP Get field infos e _AP Get table info. Un’altra opzione è quella di usare il sito SQL system tables.

Nessuno di essi consente di recuperare tutte le informazioni. Quindi, perché usare un plug-in o SQL quando si potrebbe usare un comando 4D? Il comando EXPORT STRUCTURE restituisce la definizione completa della struttura del database in un albero XML. Questo comando esiste da 4D v14 R4.

Ad esempio, con questo comando è possibile scoprire:

  • se una tabella è divisa,
  • se un campo è una chiave primaria
  • se un trigger è associato a un campo,
  • se una tabella o un campo sono esposti in 4D Mobile Service.

Sono disponibili tre metodi per analizzare l’albero XML e salvare il risultato in una variabile oggetto. Quindi, è possibile manipolare questo oggetto con i comandi oggetto di 4D per analizzare, visualizzare o eseguire qualsiasi altra azione desiderata su una tabella, un campo, un indice o una relazione.

È disponibile il codice sorgente di ciascun metodo e il database di esempio completo (versione 4D v16):

Sentitevi liberi di importare questi comandi nel vostro database, sono già pronti all’uso!

Informazioni su tabelle e campi

4D methodIl metodo getTablesAndFields analizza l’albero XML e recupera le informazioni sulle tabelle e sui campi. Il risultato viene memorizzato in una variabile Object. Si tratta di un estratto di un oggetto in formato JSON che contiene le informazioni sulla tabella “Table_1” e uno dei campi denominati “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"
	} , {...} ]
}

Informazioni sugli indici

4D methodIl metodo getIndex analizza l’albero XML e recupera le informazioni sull’indice. Il risultato viene memorizzato in una variabile Object. Si tratta di un estratto di un oggetto in formato JSON; si possono vedere le informazioni sull’indice “Index Name” dell’indice del campo “[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"
	} ]
}

Informazioni sulle relazioni

4D methodIl metodo getRelations analizza l’albero XML e recupera le informazioni sulla relazione. Il risultato viene memorizzato in una variabile Object. Si tratta di un estratto delle informazioni sulla relazione tra “[Table_1]ID” e “[Table_2]ID” in formato 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"
	} ]
}

Sostituire i comandi deprecati di 4D Pack

4D methodSi può anche usare il comando EXPORT STRUCTURE per sostituire i comandi deprecati del pacchetto 4D. Vi forniamo due metodi 4D che sono stati implementati per rispondere come i comandi _AP Get field infos e _AP Get table info :

  • Get table info: recupera informazioni su una tabella
  • Get field info: recupera informazioni su un campo
Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.