dbExpress-Datenmengen verwenden

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Verwenden von dbExpress-Komponenten - Index


dbExpress setzt sich aus mehreren "schlanken" Datenbanktreibern zusammen, die schnellen Zugriff auf SQL-Datenbankserver bieten. dbExpress stellt für jede unterstützte Datenbank einen Treiber zur Verfügung, der die server-spezifische Software an eine Menge einheitlicher dbExpress-Interfaces anpasst. Wenn Sie eine Datenbankanwendung einsetzen, die dbExpress verwendet, brauchen Sie nur eine einzige DLL (den server-spezifischen Treiber) in die von Ihnen erstellten Anwendungsdateien aufzunehmen.

dbExpress ermöglicht Ihnen den schnellen Zugriff auf Datenbanken unter Verwendung unidirektionaler Datenmengen. Unidirektionale Datenmengen sind auf schnellen, unaufwendigen Zugriff auf Datenbankinformation ausgelegt, wobei nur ein minimaler Zusatzaufwand entsteht. Wie andere Datenmengen können sie einen SQL-Befehl an den Datenbankserver senden und, falls der Befehl mehrere Datensätze zurückgibt, einen Cursor für den Zugriff auf diese Datensätze entgegennehmen. Unidirektionale Datenmengen können nur einen unidirektionalen Cursor entgegennehmen. Sie nehmen keine Zwischenspeicherung der Daten vor, wodurch sie schneller und weniger ressourcenaufwendig als andere Datenmengentypen werden. Weil sie jedoch die Datensätze nicht zwischenspeichern, sind unidirektionale Datenmengen weniger flexibel als andere Datenmengen. Viele der von TDataSet eingeführten Funktionen sind in unidirektionalen Datenmengen entweder nicht implementiert oder bewirken, dass eine Exception ausgelöst wird. Ein Beispiel:

  • Die einzigen unterstützten Navigationsmethoden sind die Methoden First und Next. Die meisten anderen lösen Exceptions aus. Einige davon, wie beispielsweise die Methoden zur Unterstützung von Lesezeichen, haben keinerlei Auswirkung.
  • Es gibt keine integrierte Unterstützung für Bearbeitungen, weil dafür ein Zwischenspeicher erforderlich wäre, der sie aufnimmt. Die Eigenschaft CanModify ist immer False, deshalb schlägt jeder Versuch fehl, die Datenmenge in den Bearbeitungsmodus zu versetzen. Sie können unidirektionale Datenmengen jedoch verwenden, um Daten mithilfe des SQL-Befehls UPDATE zu aktualisieren oder eine Bearbeitung auf konventionelle Weise zu realisieren, nämlich durch Verwendung einer dbExpress-fähigen Client-Datenmenge oder das Verbinden der Datenmenge mit einer Client-Datenbank (siehe Verbindungen zu anderen Datenmengen einrichten).
  • Filter werden nicht unterstützt, weil diese mit mehreren Datensätzen arbeiten, wofür eine Zwischenspeicherung notwenig ist. Wenn Sie versuchen, eine unidirektionale Datenmenge zu filtern, führt dies zu einer Exception. Stattdessen müssen alle Einschränkungen, welche Daten berücksichtigt werden sollen, mithilfe des SQL-Befehls festgelegt werden, der die Daten für die Datenmenge definiert.
  • Es gibt keine Unterstützung für Lookup-Felder, wofür eine Zwischenspeicherung erforderlich wäre, um mehrere Datensätze aufzunehmen, die die Nachschlagewerte enthalten. Wenn Sie versuchen, ein Lookup-Feld für eine unidirektionale Datenmenge zu definieren, funktioniert es nicht korrekt.

Trotz dieser Einschränkungen stellen unidirektionale Datenmengen eine sehr leistungsfähige Möglichkeit dar, auf Daten zuzugreifen. Sie sind der schnellste Datenzugriffsmechanismus und außerdem sehr einfach zu nutzen und weiterzugeben.

Die folgenden Themen bieten eine detailliertere Beschreibung unidirektionaler Datenmengen:

Siehe auch