Class Viewer
Inspect classes and routines, and copy them between servers
Browse class and routine source (including INT code) and copy a class to another namespace or another server from the context menu.
- Properties, Methods, Queries, Parameter
- Vererbungshierarchie navigierbar
- Storage-Definition in lesbarer Form
- Überladene Methoden aus Superklassen zusammengeführt
InterSystems IRIS und Caché sind objektrelationale Datenbanken, was bedeutet, dass jede Tabelle durch eine Klasse unterstützt wird, und jede Klasse definiert ihre eigene Storage-Struktur, Vererbungshierarchie und Methoden. Die meisten SQL-Clients zeigen nur die Tabellen-Seite dieser Beziehung — die Spalten und Indizes — und lassen die Klassen-Seite unsichtbar. Das ist eine verpasste Gelegenheit: Klassen dokumentieren, wie Daten gespeichert werden, wie sie vererbt werden und welche Geschäftslogik sie haben.
Der Class Viewer macht die Klassendefinition lesbar, organisiert nach Properties, Methoden, Queries und Parametern, mit der Vererbungshierarchie als navigierbarer Baum. Man muss nicht zur IDE gehen, um zu sehen, wie eine Klasse aufgebaut ist — es ist direkt im SQL-Client.

Properties: Spalten als Klassenelemente
Das Properties-Tab listet jede Property der Klasse mit ihrem Typ, Kollation, ob sie berechnet ist, ob sie privat ist, ob sie transient ist, und ob sie erforderlich ist. Das ist die Klassenperspektive dessen, was eine Spalte ist — nicht nur der SQL-Datentyp, sondern die Property-Definition, die ihn unterstützt.
Properties, die von Superklassen geerbt werden, werden mit einer Notiz angezeigt, welche Klasse sie definiert hat, sodass man die Vererbung verfolgen kann, ohne jede Klasse in der Hierarchie manuell zu öffnen. Überladene Properties — Properties, die in einer Subklasse neu definiert werden — werden ebenfalls notiert, sodass klar ist, wann eine Property ihre Basis-Definition ändert.
Methods: Geschäftslogik und validierte Berechnungen
Das Methods-Tab listet jede Methode, die auf der Klasse definiert ist, mit ihrer Signatur, ihrem Rückgabetyp und ob sie klassenweit oder instanzspezifisch ist. Methoden, die von Superklassen geerbt werden, werden notiert, und überladene Methoden werden hervorgehoben, sodass man sehen kann, wo die Implementierung tatsächlich lebt.
Das ist der Ort, an dem Geschäftslogik dokumentiert ist, und es ist der Grund, warum Klassen mehr
als nur Tabellen sind. Eine Methode wie CalculateDiscount() kann von SQL aufgerufen
werden, aber sie lebt auf der Klasse, nicht in der SQL-Schicht, also ist der Class Viewer der Ort,
an dem man sie findet.
Queries: SQL-Views als Klassenmember
IRIS und Caché erlauben es, SQL-Queries als Klassenmitglieder zu definieren, was bedeutet, dass eine Abfrage in der Klasse lebt, nicht als separate View oder gespeicherte Prozedur. Das Queries-Tab listet diese Abfragen mit ihren Parametern und Spalten, sodass man sehen kann, welche Abfragen verfügbar sind, ohne die gesamte Klassendefinition zu lesen.
Das ist besonders nützlich für Klassen, die komplexe Berichte oder Aggregationen definieren — die Abfrage ist Teil der Klasse, nicht ein separates Objekt, also ist der Class Viewer der Ort, an dem man sie findet.

Storage: Wie die Klasse die Daten speichert
Das Storage-Tab zeigt die Storage-Definition der Klasse in lesbarer Form. Das ist nicht die tabellarische Darstellung, die der Table Viewer zeigt — das ist die Klassenperspektive, die erklärt, wie Properties auf Global-Subscripts gemappt werden.
Die Storage-Definition ist das, was es möglich macht, einen Wert in einem Global zu sehen und zu wissen, welche Property er ist. Umgekehrt, wenn eine Property in Slot 7 definiert ist, aber das Lesen der Daten aus Slot 8 kommt, ist das ein Metadaten-Inkonsistenzproblem, und das Storage-Schema ist der Weg, das zu diagnostizieren.
Das Tab zeigt auch die Index-Definitions — welche Indizes die Klasse hat, welche Spalten sie abdecken und welche Globals sie verwenden. Das ist dasselbe wie das Indexes-Tab im Table Viewer, aber aus der Klassenperspektive, nicht der Tabellenperspektive.
Parameters: Klassenweite Konfiguration
Klassen können Parameter definieren, die klassenweite Konfigurationen sind — Dinge wie
DEFAULTGLOBAL, USEEXTENTSET und benutzerdefinierte Parameter, die von
Geschäftslogik verwendet werden. Das Parameters-Tab listet diese Parameter mit ihren Werten,
sodass man sehen kann, wie eine Klasse konfiguriert ist, ohne die Klassendefinition zu lesen.
Inheritance: Die Vererbungshierarchie als Baum
Das Inheritance-Tab zeigt die Vererbungshierarchie als Baum, mit der aktuellen Klasse an der Wurzel und allen Superklassen darüber und allen Subklassen darunter. Jede Klasse im Baum ist anklickbar, sodass man durch die Hierarchie navigieren kann, ohne die Klassennamen manuell zu suchen.
Das ist der Weg, um zu verstehen, woher eine Property oder Methode kommt: Man sieht die Klasse, sieht die Superklasse im Inheritance-Tab, klickt auf die Superklasse, und sieht ihre Properties. Das ist schneller als die Hierarchie im Kopf zu behalten oder die IDE zu öffnen.

Wie das zum Rest des Tools passt
Der Class Viewer ist absichtlich parallel zum Table Viewer aufgebaut: Dieselbe Schnittstelle, dieselbe Navigation, dieselbe Filterung, nur auf Klassendefinitionen angewendet statt Tabellendefinitionen. Das ist möglich, weil IRIS und Caché Tabellen und Klassen als zwei Projektionen derselben Struktur behandeln — jede Tabelle ist eine Klasse, jede Klasse ist eine Tabelle — und der Class Viewer ist die Ansicht auf die Klassenseite.
Das macht SQL DATA LENS zu mehr als nur einem SQL-Client: Es ist ein vollständiges Werkzeug für das Verständnis von IRIS- und Caché-Datenbanken, nicht nur ihrer SQL-Schicht. Wenn die Antwort auf eine Frage in der Klassendefinition liegt, nicht in der Tabellendefinition, ist der Class Viewer der Weg, diese Antwort zu finden, ohne die IDE zu öffnen.
Der Class Viewer ist in jeder Edition verfügbar, einschließlich der Free Edition. Laden Sie SQL DATA LENS herunter und sehen Sie, wie eine Tabelle als Klasse aussieht, nicht nur als Spalten.
See your IRIS data the way it actually is
Download, unzip, connect. Your first namespace is on screen in about three minutes.
Windows 10, 11 and Windows Server (64-bit) · ~140 MB · version 3.24 · full 30-day Pro trial included