Análise detalhada da estrutura da sua base de dados

Tradução automática de Deepl

Sabia que pode recuperar informações muito detalhadas sobre uma tabela, campo, índices, relação ou mesmo sobre a estrutura completa da base de dados? Este tipo de informação é sempre muito útil para fins de análise ou introspecção. Evidentemente, poderia usar os comandos depreciados do Pack 4D: _AP Get field infos e _AP Get table info. Outra opção é utilizar o SQL system tables.

Nenhuma delas lhe permite recuperar todas as informações. Então porquê utilizar um plug-in ou SQL quando se pode utilizar um comando 4D? O . EXPORT STRUCTURE retorna a definição completa da estrutura da base de dados numa árvore XML . Este comando existe desde 4D v14 R4.

Por exemplo, com este comando, pode descobrir:

  • se uma tabela é revista,
  • se um campo é uma chave primária,
  • se um gatilho está associado a um campo,
  • se uma mesa ou um campo estão expostos no Serviço Móvel 4D.

Fornecemos-lhe três métodos para analisar a árvore XML e para guardar o resultado numa variável Objecto. Depois, pode manipular este objecto com os comandos de objecto 4D para analisar, exibir ou fazer qualquer outra acção que pretenda sobre uma tabela, campo, índice, ou relação.

O código fonte de cada método, bem como a base de dados de exemplo completa (versão 4D v16) está disponível:

Sinta-se à vontade para importar estes comandos na sua base de dados, estão prontos a usar!

Informação sobre tabelas e campos

4D methodO . getTablesAndFields O método analisa a árvore XML e recupera a tabela e a informação de campo. O resultado é armazenado numa variável Objecto. Este é um extracto de um objecto em formato JSON que contém a informação sobre o “Table_1“tabela e um dos campos chamados “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"
	} , {...} ]
}

Informação sobre índices

4D methodO getIndex O método analisa a árvore XML e recupera a informação do índice. O resultado é armazenado numa variável Objecto. Este é um extracto de um objecto em formato JSON; é possível ver a informação no formato “Index Name” índice do “[Table_1]Champ_Alp” campo:

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

Informação sobre relações

4D methodO getRelations O método analisa a árvore XML e recupera a informação da relação. O resultado é também armazenado numa variável Objecto. Este é um extracto da informação da relação entre “[Table_1]ID” e “[Table_2]ID” no 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"
	} ]
}

Substituir comandos depreciados do Pack 4D

4D methodTambém pode utilizar o EXPORT STRUCTURE para substituir os comandos depreciados do Pack 4D. Fornecemos-lhe dois métodos 4D que foram implementados a fim de responder como o _AP Get field infos e _AP Get table info ordens:

  • Get table info: recupera informação sobre uma mesa
  • Get field info: recupera informação sobre um campo
Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.