Podrobná analýza struktury vaší databáze

Automaticky přeloženo z Deepl

Věděli jste, že můžete získat velmi podrobné informace o tabulce, poli, indexech, relaci nebo dokonce o celé struktuře databáze? Tento druh informací je vždy velmi užitečný pro účely analýzy nebo introspekce. Samozřejmě můžete použít zastaralé příkazy balíku 4D Pack: _AP Get field infos a _AP Get table info. Další možností je použít příkaz SQL system tables.

Žádný z nich neumožňuje získat všechny informace. Proč tedy používat zásuvný modul nebo SQL, když můžete použít příkaz 4D? Příkaz EXPORT STRUCTURE Příkaz vrátí kompletní definici struktury databáze ve stromu XML . Tento příkaz existuje od 4D v14 R4.

Pomocí tohoto příkazu můžete například zjistit:

  • zda je tabulka žurnálovaná,
  • zda je pole primárním klíčem,
  • zda je s polem spojen spouštěč,
  • zda jsou tabulka nebo pole vystaveny ve službě 4D Mobile Service.

Nabízíme vám tři metody pro rozbor stromu XML a uložení výsledku do proměnné Object. S tímto objektem pak můžete manipulovat pomocí objektových příkazů 4D a analyzovat, zobrazit nebo provést jakoukoli jinou akci, kterou chcete s tabulkou, polem, indexem nebo relací provést.

K dispozici je zdrojový kód jednotlivých metod i kompletní ukázková databáze (verze 4D v16):

Neváhejte a importujte tyto příkazy do své databáze, jsou připraveny k použití!

Informace o tabulkách a polích

4D methodPříkaz getTablesAndFields analyzuje strom XML a načte informace o tabulkách a polích. Výsledek je uložen do proměnné Object. Jedná se o výpis objektu ve formátu JSON, který obsahuje informace o „Table_1“ tabulce a jednom z polí s názvem „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"
	} , {...} ]
}

Informace o indexech

4D methodNa adrese . getIndex metoda analyzuje strom XML a načte informace o indexu. Výsledek je uložen do proměnné Object. Jedná se o výpis objektu ve formátu JSON; informace si můžete prohlédnout na „Index Name“ indexu „[Table_1]Champ_Alp“ pole:

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

Informace o vztazích

4D method. getRelations metoda analyzuje strom XML a načte informace o vztahu. Výsledek je rovněž uložen do proměnné Object. Jedná se o výpis informací o vztahu mezi „[Table_1]ID“ a „[Table_2]ID“ ve formátu 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"
	} ]
}

Nahrazení zastaralých příkazů balíčku 4D Pack

4D methodMůžete také použít metodu EXPORT STRUCTURE nahradit zastaralé příkazy balíčku 4D Pack. Nabízíme vám dvě metody 4D, které byly implementovány tak, aby reagovaly jako např. _AP Get field infos a . _AP Get table info příkazy:

  • Get table info: načte informace o tabulce
  • Get field info: vyhledá informace o poli
Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.