Iterate Tables

Iterate Tables
 1def describe_table(table, show_columns):
 2    impact.gui.output_toolbox.add(table.name)
 3
 4    impact.gui.output_toolbox.add("   Type: " + str(table.type))
 5    if (table.type == ipDatabaseTableType.dttLayerExtra):
 6        impact.gui.output_toolbox.add("   Layer Type: " + str(table.layer_type))
 7    impact.gui.output_toolbox.add("   Prompt: " + str(table.prompt))
 8    impact.gui.output_toolbox.add("   Hidden: " + str(table.hidden))
 9    impact.gui.output_toolbox.add("   Private: " + str(table.private))
10
11    impact.gui.output_toolbox.add("   Column Count: " + str(table.columns.count))
12
13    if not show_columns:
14        return
15
16    for column in table.columns:
17        impact.gui.output_toolbox.add("      " + str(column.name))
18        impact.gui.output_toolbox.add("         Type: " + str(column.type))
19
20        if column.type == ipDatabaseColumnType.dctCharacter:
21            impact.gui.output_toolbox.add("         Length: " + str(column.length))
22
23        if column.has_units:
24            impact.gui.output_toolbox.add("         impact.units: " + str(column.units))
25
26        impact.gui.output_toolbox.add("         Prompt: " + str(column.prompt))
27        impact.gui.output_toolbox.add("         Allow None: " + str(column.allow_null))
28        impact.gui.output_toolbox.add("         IsBLOB: " + str(column.is_blob))
29        impact.gui.output_toolbox.add("         Indexed: " + str(column.indexed))
30
31        if column.indexed:
32            impact.gui.output_toolbox.add("            Name: " + str(column.index_name))
33            impact.gui.output_toolbox.add("            Unique: " + str(column.unique))
34            impact.gui.output_toolbox.add("            Ascending: " + str(column.ascending))
35            impact.gui.output_toolbox.add("            Case Sensitive: " + str(column.case_sensitive))
36
37        impact.gui.output_toolbox.add("         Hidden: " + str(column.hidden))
38        impact.gui.output_toolbox.add("         Private: " + str(column.private))
39
40
41impact.gui.output_toolbox.clear()
42impact.gui.output_toolbox.add("Table Count: " + str(impact.active_database.settings.tables.count))
43
44for table in impact.active_database.settings.tables:
45    describe_table(table, False)
46
47describe_table(impact.active_database.settings.tables.item("DRAWINGS"), True)