Análisis detallado de la estructura de su base de datos

Traducido automáticamente de Deepl

¿Sabía que puede recuperar información muy detallada sobre una tabla, un campo, unos índices, una relación o incluso sobre la estructura completa de la base de datos? Este tipo de información es siempre muy útil para el análisis o la introspección. Por supuesto, puede utilizar los comandos obsoletos de 4D Pack _AP Get field infos y _AP Get table info. Otra opción es utilizar el comando SQL system tables.

Ninguno de ellos le permite recuperar toda la información. Entonces, ¿por qué utilizar un plug-in o SQL cuando podría utilizar un comando de 4D? El comando EXPORT STRUCTURE devuelve la definición completa de la estructura de la base de datos en un árbol XML. Este comando existe desde 4D v14 R4.

Por ejemplo, con este comando se puede averiguar

  • si una tabla está registrada en el diario,
  • si un campo es una clave primaria,
  • si un trigger está asociado a un campo,
  • si una tabla o un campo están expuestos en 4D Mobile Service.

Le proporcionamos tres métodos para analizar el árbol XML y guardar el resultado en una variable Object. Luego, puede manipular este objeto con los comandos de objetos de 4D para analizar, mostrar o hacer cualquier otra acción que desee sobre una tabla, campo, índice o relación.

El código fuente de cada método, así como la base de datos de ejemplo completa (versión 4D v16) están disponibles:

Siéntase libre de importar estos comandos en su base de datos, ¡están listos para ser usados!

Información sobre tablas y campos

4D methodEl método getTablesAndFields analiza el árbol XML y recupera la información de las tablas y los campos. El resultado se almacena en una variable Object. Se trata de un extracto de un objeto en formato JSON que contiene la información de la tabla «Table_1» y uno de los campos denominados «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"
	} , {...} ]
}

Información sobre los índices

4D methodEl método getIndex analiza el árbol XML y recupera la información del índice. El resultado se almacena en una variable Object. Se trata de un extracto de un objeto en formato JSON; se puede ver la información del índice «Index Name» 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"
	} ]
}

Información sobre las relaciones

4D methodEl método getRelations analiza el árbol XML y recupera la información de la relación. El resultado también se almacena en una variable Object. Se trata de un extracto de la información de la relación entre «[Table_1]ID» y «[Table_2]ID» en 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"
	} ]
}

Reemplazar los comandos obsoletos de 4D Pack

4D methodTambién puede utilizar el comando EXPORT STRUCTURE para reemplazar los comandos obsoletos de 4D Pack. Le proporcionamos dos métodos 4D que han sido implementados para responder como el _AP Get field infos y _AP Get table info y los comandos:

  • Get table info: recupera información sobre una tabla
  • Get field info: recupera información sobre un campo
Vanessa Talbot
• Propietario de producto - Vanessa Talbot llegó al equipo de 4D Program en junio de 2014. Como Propietario de producto, está a cargo de escribir las historias de los usuarios y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Desde su llegada, ha trabajado en la definición de funcionalidades claves en 4D. Ha trabajado en la mayoría de las nuevas funcionalidades de multi hilo apropiativo y también en un tema muy complejo: la nueva arquitectura para la aplicación engined. Vanessa es licenciada por Telecom Saint-Etienne. Comenzó su carrera en el Instituto de Investigación Criminal como desarrolladora del departamento audiovisual. También ha trabajado en medios de comunicación y en el ámbito médico como experta en soporte técnico, producción y documentación de nuevas funcionalidades.