Arten von Datenmengen
Nach oben zu Datenmengen - Index
Unter Nachkommen der Klasse TDataSet verwenden wurden die Nachkommen der Klasse TDataSet anhand der Methoden klassifiziert, mit denen sie auf die Daten zugreifen. Eine weitere Möglichkeit besteht darin, die Nachkommen der Klasse TDataSet anhand der Art der Server-Daten zu klassifizieren, die diese darstellen. Auf diese Weise ergeben sich drei Grundklassen von Datenmengen:
Tabellen-Datenmengen: Diese Datenmengen stellen eine einzelne Tabelle des Datenbank-Servers mit allen Zeilen und Spalten dar. Zu diesen Datenmengen gehören Bde.DBTables.TTable, ADOdb.TADOTable, SQLExpr.TSQLTable und IBX.IBTable.TIBTable.
Bei Tabellen-Datenmengen können die auf dem Server definierten Indizes genutzt werden. Da eine Eins-zu-Eins-Entsprechung zwischen der Datenbanktabelle und der Datenmenge besteht, können Sie bei der Programmierung die Server-Indizes verwenden, die für die Datenbanktabelle definiert wurden. Die Anwendung kann Indizes zum Sortieren der Datensätze der Tabelle, zur Beschleunigung von Such- und Nachschlagevorgängen sowie als Basis für eine Haupt/Detail-Beziehung nutzen. Einige Tabellen-Datenmengen nutzen ferner die Eins-zu-Eins-Beziehung zwischen Datenmenge und Datenbanktabelle, um tabellenbezogene Vorgänge wie das Erstellen und Löschen von Datenbanktabellen durchzuführen.
Abfrage-Datenmengen: Diese Datenmengen stellen einen einzelnen SQL-Befehl (d.h. eine Abfrage) dar. In einer Abfrage lässt sich die Ergebnismenge der Ausführung eines Befehls (in der Regel eine SELECT-Anweisung) darstellen. Mit ihnen kann auch ein Befehl ausgeführt werden, der keine Datensätze zurückgibt (z.B. eine UPDATE-Anweisung). Zu diesen Datenmengen gehören Bde.DBTables.TQuery, ADOdb.TADOQuery, SQLExpr.TSQLQuery und IBX.IBQuery.TIBQuery.
Um mit einer Abfrage-Datenmenge effektiv arbeiten zu können, müssen Sie SQL und die SQL-Implementierung Ihres Servers sowie die Einschränkungen und Erweiterungen des Standards SQL-92 genau kennen. Wenn Sie noch keine Erfahrung mit SQL haben, ist die Anschaffung eines Buches sinnvoll, in dem SQL ausführlich behandelt wird. Besonders zu empfehlen ist der Titel Understanding the New SQL: A Complete Guide von Jim Melton und Alan R. Simpson, Morgan Kaufmann Publishers.
Datenmengen vom Typ Stored Procedures: Diese Datenmengen repräsentieren eine auf dem Datenbank-Server gespeicherte Prozedur bzw. Stored Procedure. Zu diesen Datenmengen gehören Bde.DBTables.TStoredProc, ADOdb.TADOStoredProc, SQLExpr.TSQLStoredProc und IBX.IBStoredProc.TIBStoredProc.
Stored Procedures sind eigenständige Programme, die jeweils in der datenbanksystemspezifischen Sprache für Prozeduren und Auslöser geschrieben wurden. In der Regel dienen sie zur Bearbeitung häufig auftretender datenbankbezogener Aufgaben und sind besonders bei der Verarbeitung von großen Datensatzmengen oder bei Verwendung von Zusammenfassungs- oder mathematischen Funktionen hilfreich. Durch den Einsatz von Stored Procedures lässt sich die Leistungsfähigkeit der Datenbankanwendung deutlich verbessern.
- Dies hat folgende Gründe: Die in der Regel größere Verarbeitungsleistung und -geschwindigkeit des Servers können genutzt werden.
- Die Netzwerkbelastung wird verringert, weil Prozesse auf den Server verlagert werden.
Stored Procedures geben nicht in allen Fällen Daten zurück. Wenn Daten zurückgegeben werden, handelt es sich dabei ggf. um einen Cursor (entspricht dem Ergebnis einer SELECT-Abfrage) oder mehrere Cursor (es werden in der Tat mehrere Datenmengen zurückgegeben), oder es werden Daten in Ausgabeparametern zurückgegeben. Diese Unterschiede sind zum Teil von dem verwendeten Server abhängig: Einige Server erlauben nicht, dass Stored Procedures Daten zurückgeben, oder sie erlauben nur Ausgabeparameter. Einige Server unterstützen überhaupt keine Stored Procedures. Der Dokumentation zu Ihrem Datenbank-Server können Sie entnehmen, welche Funktionen unterstützt werden.
Hinweis: Normalerweise können Sie Abfrage-Datenmengen verwenden, um Stored Procedures auszuführen, weil die meisten Server SQL-Erweiterungen für den Einsatz von Stored Procedures zur Verfügung stellen. Die Syntax hierfür ist jedoch bei jedem Server anders. Wenn Sie eine Abfrage-Datenmenge anstelle einer Datenmenge vom Typ Stored Procedure verwenden möchten, informieren Sie sich in der Dokumentation zu Ihrem Datenbank-Server über die geeignete Syntax.
Zusätzlich zu den bereits beschriebenen Datenmengen, die sich eindeutig in die genannten Kategorien einordnen lassen, sind einige Nachkommen zu TDataSet vorhanden, die in mehrere Kategorien passen:
- ADOdb.TADODataSet und SQLExpr.TSQLDataSet weisen die Eigenschaft CommandType auf, mit der Sie angeben können, ob es sich bei der Datenmenge um eine Tabelle, Abfrage oder Stored Procedure handelt. Die Namen der zugehörigen Eigenschaften und Methoden entsprechen denen der Abfrage-Datenmengen, mit TADODataSet lässt sich allerdings zusätzlich wie bei einer Tabellen-Datenmenge ein Index angeben.
- Datasnap.DBClient.TClientDataSet stellt die Daten aus einer anderen Datenmenge dar. Somit kann ein TClientDataSet-Objekt eine Tabelle, Abfrage oder Stored Procedure darstellen. TClientDataSet verhält sich im Wesentlichen wie eine Tabellen-Datenmenge, weil Indizes unterstützt werden. Diese Art von Datenmenge weist allerdings einige der Merkmale von Abfragen und Stored Procedures auf: die Verwaltung von Parametern und die Möglichkeit, ausgeführt zu werden, ohne eine Ergebnismenge abzurufen.
- Einige andere Client-Datenmengen weisen die Eigenschaft CommandType auf, über die angegeben werden kann, ob es sich um eine Tabelle, Abfrage oder Stored Procedure handelt. Die Namen von Eigenschaften und Methoden entsprechen denen für TClientDataSet, hierzu gehören die Unterstützung von Parametern, Indizes und die Möglichkeit, ausgeführt zu werden, ohne eine Ergebnismenge abzurufen.
- IBX.IBCustomDataSet.TIBDataSet kann sowohl Abfrage-Datenmengen als auch Stored Procedures darstellen. Es ist damit sogar möglich, mehrere Abfragen und Stored Procedures gleichzeitig darzustellen, wobei für jede von ihnen eigene Eigenschaften definiert sein können.