So wie versprochen gibt es hier die vollständige Klassenbeschreibung. Leider ist es mir aus Zeitgründen nicht möglich detailierter auf die einzelnen Klassen einzugehen. Dieser Überblick über die Klassen sollte aber dennoch ganz gut ausreichen um einen ersten Eindruck bekommen zu können.
Folgende Typen sind in der Unit DBSys enthalten.
EDBSysTableException = class(Exception);
Exeptionklasse (Muss wohl nicht näher erklärt werden)
TDBSysColumnType = Byte;
Ist der Typ in dem später der Spaltentyp (Integer, Text) abgelegt wird.
TDBSysColumn = record
Beschreibt im wesentlichen nur eine Spalte. In dem Record enthalten sind die Angaben über Typ, Name und Größe der Spalte.
PDBSysColumn = ^TDBSysColumn;
Ein Pointer auf das Record der Klasse.
TDBSysDataFile = class
Diese Klasse beinhaltet einen Stream (TMemoryStream) und einen Index auf die aktuelle Zeile. In dem Stream sind alle derzeitlich Zeilen vertreten. Die Klasse hingegen wird nur dazu verwendet um den Stream zu Kapseln. Eventuell kann man zu einem Späteren Zeit daraus ein Record machen.
TDBSysItem = record
Hierbei handelt es sich um einen Eintrag aus der Liste (TDBSysItems). Eine genauere Beschreibung erfolgt bei der Liste.
PDBSysItem = ^TDBSysItem
Ein Pointer auf das Record TDBSysItem.
TDBSysItems = class(TList)
Dies ist eine Ableitung der Klasse TList. In dieser Liste werden die Größen und Dateizugehörigkeiten einzelner Felder abgelegt. Es kann allerdings nur eine einzige Spalte in dieser Liste abgelegt werden. Dafür können aber beliebig viele Listen existieren.
Um es mal ein wenig deutlicher zu gestalten hier ein kleines Beispiel wozu die Liste überhaupt gut ist. Ein Blobfeld kann eine beliebige Größe haben. Und wenn wir uns von der ersten Zeile bis zur Letzten durcharbeiten müssten wir bei jeden Blobfeld schauen wie groß es denn sei. Und da das jedes Mal Festplattenzugriffe wären, die überhaupt nicht notwendig wären, werden die Größen und die Dateizugehörigkeiten in solch einer Liste abgelegt.
TDBSysColumns = class
Hierbei handelt es sich um eine Liste der Spalten. Diese Klasse hat neben den Möglichkeiten eines indiziellen Zugriffs auch noch die Möglichkeit sich über den Namen eine Spalte zurück geben zu lassen. Hier sollte ich später noch die Hashklasse einbauen. Der Geschwindigkeit wegen.
TDBSysTable = class
Dies ist das Herzstück der Datenbank. Mit ihr kann man neue Spalten erstellen. Sich in den Datensätzen bewegen. Datensätze hinzufügen oder löschen. Außerdem verfügt diese Klasse noch über eine Auswahl an Berechnungsspalten mit dem man das Min, Max, Avg und Sum einer Spalte berechnen kann. Mehr werde ich jetzt hier nicht erklären, da sich die Methoden eigentlich selbst erklären.