aVogt
Returning Creator

Eigenschaften einer Tabelle aus einem Schema ermitteln

Hallo, ich muss in einer Doku aufnehmen, welche Tabellen mit welchen feldern und Eigenschaften es in einem DB-Schema gibt. Nun habe ich keinen Ansatzpunkt gefunden, mit dem ich über die API von einer Datentabelle alle Felder mit den zugehörigen Eigenschaften (Sprachabhängig, Name, Größe (bei String, int)) ermitteln kann. Über welchen Ansatz komme ich an die Daten? Grüße Andreas

0 Kudos
7 Replies
kohlbrecher
Crownpeak employee

Hallo Andreas,

möchtest du vorhandene Datequellen dokumentieren oder allgemein aufschreiben, welche Möglichkeiten es gibt Daten in den Datenquellen abzulegen? In beiden Fällen ist mir allerdings nicht klar, warum dies über die API ermittelt werden soll. Könntest du das nochmal näher erläutern?

Grüße

Jan

0 Kudos

Hallo Jan, ich möchte/muss eine Doku über das Schema erstellen. Es soll so etwas herauskommen: Tabellenname 1 Spaltenname 1 - Spaltenformat 1 Spaltenname 2 - Spaltenformat 2 ... Spaltenname n - Spaltenformat n Tabellenname 2 Spaltenname 1 - Spaltenformat 1 Spaltenname 2 - Spaltenformat 2 ... Spaltenname n - Spaltenformat n Bei über 50 Tabellen in einem Schema ist es mir zu mühsamm alles von Hand zu erstellen. Dann muss ich "nur" noch die Bedeutung (also für was wird die Spalte verwendet, bzw. was steht drin) ergänzen. Super wäre es, wenn in einer der nächsten Versionen event. noch ein Kommentar mit eingegeben werden könnte (für Tabelle und Spalte), für was die Tabelle/Spalte verwendet wird (in oracle z.B. gibt es so etwas). Darüber könnte ich die Doku des Schemas komplett erstellen lassen. (Ich würde mal ein FR erstellen, wenn Du meinst, dass es event. machbar wäre) Grüße Andreas

0 Kudos

Hallo Andreas,

es ist nicht möglich einen Kommentar zu den einzelnen Feldern zu hinterlassen. Eigentlich wird eine Beschreibung über das Formular mitgegeben.

Es gibt die Möglichkeit sich per API das Schema als XML ausgeben zu lassen. Würde dir das weiterhelfen?

Grüße

Jan

0 Kudos

Hallo Jan, daran habe ich auch schon gedacht, aber dann muss ich die XML-Datei aufbereiten bzw. auslesen. In der XML-Datei stehen dann auch viele "Beziehungstabellen" drin, die ich nicht benötige. Das wäre mir eigentlich zu viel Aufwand. Mir reicht wie gesagt Tabelle mit mit zugehörigen Spalten (Name und Format). > es ist nicht möglich einen Kommentar zu den einzelnen Feldern zu hinterlassen. Eigentlich wird eine Beschreibung über das Formular mitgegeben. Schade. An den Kommentar aus dem Formular komme ich dann auch etwas schwer (zwar möglich, aber umständlich). Wäre es denn denkbar, dass es als FR angenommen wird? Grüße Andreas

0 Kudos

Ob der FR angenommen wird, kann ich nicht sagen, da ein interner Entscheidungsprozess (Nachfrage, Aufwand etc.) für die Auswahl zuständig ist. Ich befürchte, dass es sich hier um einen sehr speziellen Anwendungsfall handelt aber du kannst ja einfach einen FR stellen. Kostet ja nichts. Smiley Wink

Grüße

Jan

0 Kudos

Hallo jan,

habe doch was gefunden:

orSchema = schema.getOrSchema();

context.logInfo("..." + orSchema.getEntityTypes() );

coll = orSchema.getEntityTypes();

iter = coll.iterator();       

while (iter.hasNext()) {

et = iter.next();

context.logInfo("Tabelle: " + et.getName());

ab = et.getTable();

colList = tab.getColumns();

colIter = colList.iterator();

while (colIter.hasNext()) {

  col = (Column) colIter.next();

  context.logInfo("\tcol: " + col.getName());

  context.logInfo("\t\t: " + col.getSize());

  context.logInfo("\t\t: " + col.getTypeCode());

}

}

Ich bin mir bewußt, dass ich über die dev-API gehe (und Table noch nicht mal darin steht), aber das ist genau das was ich brauche.

Grüße

Andreas

p.s. FR erstellt: Kommentarfunktion in den DB-Schemen

0 Kudos
aVogt
Returning Creator

Hallo Jan, 

auch wenn die eigentliche Frage beantwortet ist.

Bekomme ich igendwie heraus, ob Tabellenvorlagen eine Tabelle als Vorlage hat?

Wenn im Schema einen Tabelle gelöscht werden soll, werden die Tabellenvorlagen angezeigt.

Bisher iterierte ich über orSchema.getEntityTypes().

Bei dem so erhaltenen orSchema.getEntityTypes().EntityType habe ich nichts gefunden, um an die Tabellenvorlagen zu kommen, die auf der Tabelle bassieren.

Muss ich einen anderen Weg gehen?

Grüße

Andreas

0 Kudos