Einführung in InterBase Express

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenbankanwendungen entwickeln

InterBase Express (IBX) besteht aus Komponenten, mit denen auf die Daten von InterBase-Datenbanken zugegriffen werden kann. Die InterBase-Verwaltungskomponenten, für die InterBase erforderlich ist, werden nach den InterBase-Datenzugriffskomponenten beschrieben.

IBX-Komponenten

Die folgenden Komponenten befinden sich auf der Registerkarte InterBase der Komponentenpalette.

IBX

IBX.IBTable.TIBTable

IBX

IBX.IBQuery.TIBQuery

IBX

IBX.IBStoredProc.TIBStoredProc

IBX

IBX.IBDatabase.TIBDatabase

IBX

IBX.IBDatabase.TIBTransaction

IBX

IBX.IBUpdateSQL.TIBUpdateSQL

IBX

IBX.IBCustomDataSet.TIBDataSet

IBX

IBX.IBSQL.TIBSQL

IBX

IBX.IBDatabaseInfo.TIBDatabaseInfo

IBX

IBX.IBSQLMonitor.TIBSQLMonitor

IBX

IBX.IBEvents.TIBEvents

IBX

IBX.IBExtract.TIBExtract

IBX

IBX.IBConnectionBroker.TIBConnectionBroker

IBX

InterBase Script

IBX

InterBase SQL Parser

IBX

IBX.IBDatabaseINI.TIBDatabaseINI

IBX

IBX.IBFilterDialog.TIBFilterDialog


Trotz ähnlicher Namen bestehen gewisse Unterschiede zwischen BDE- und IBX-Komponenten. In den folgenden Abschnitten werden diese Unterschiede erläutert.

Hinweis:Die Migration von BDE- zu IBX-Anwendungen ist mit einem gewissen Aufwand verbunden. Sie müssen die BDE-Komponenten durch entsprechende IBX-Komponenten ersetzen und danach die Anwendung neu compilieren. Der zusätzliche Migrationsaufwand wird jedoch durch die höhere Ausführungsgeschwindigkeit und den Zugriff auf die leistungsstarken InterBase-Funktionen ausgeglichen.

IBDatabase

Mit der IBX.IBDatabase.TIBDatabase-Komponente werden Verbindungen zu Datenbanken eingerichtet, die eine gleichzeitige Abwicklung mehrerer Transaktionen unterstützen. Im Gegensatz zur BDE verfügt IBX über eine gesonderte Transaktionskomponente, die eine getrennte Verwaltung von Transaktionen und Datenbankverbindungen ermöglicht.

So richten Sie eine Datenbankverbindung ein

  1. Ziehen Sie eine IBDatabase-Komponente in ein Formular oder Datenmodul.
  2. Legen Sie die Eigenschaft DatabaseName fest. Bei lokalen Verbindungen ist dies das Laufwerk, die Pfadangabe und der Dateiname der Datenbankdatei. Setzen Sie die Eigenschaft Connected auf True.
  3. Geben Sie eine gültigen Benutzernamen und ein Passwort ein, und klicken Sie auf OK, um die Verbindung zur Datenbank herzustellen.

Tipp: Benutzername und Passwort können in der Eigenschaft Params der IBDatabase-Komponente gespeichert werden. Setzen Sie dazu die Eigenschaft LoginPrompt nach dem Anmelden auf False. Wenn Sie sich beispielsweise als Systemadministrator anmelden und LoginPrompt auf False setzen, könnte die Eigenschaft Params Folgendes enthalten:


user_name=sysdba
password=masterkey

IBTransaction

Im Gegensatz zur Borland Database Engine steuert IBX Transaktionen mit einer speziellen Komponente namens IBX.IBDatabase.TIBTransaction. Damit haben Sie die Möglichkeit, Transaktionen und Datenbankverbindungen getrennt zu verwalten und den Zweiphasen-Mechanismus von InterBase für das Eintragen zu verwenden (Transaktionen können mehrere Verbindungen umfassen). Außerdem können mehrere gleichzeitige Transaktionen über eine Verbindung ausgeführt werden.

Verwenden Sie für einen Transaktionskontext, in dem möglicherweise mehrere Datenbankverbindungen genutzt werden, eine IBTransaction-Komponente. In der Regel kann aber das Modell "Eine Datenbank/Eine Transaktion" verwendet werden.

So richten Sie eine Transaktion ein

  1. Richten Sie eine IBDatabase-Verbindung wie oben beschrieben ein.
  2. Ziehen Sie eine IBTransaction-Komponente in das Formular oder Datenmodul.
  3. Weisen Sie der Eigenschaft DefaultDatabase den Namen der IBDatabase-Komponente zu.
  4. Setzen Sie die Eigenschaft Active auf True, um die Transaktion zu starten.

IBX-Datenmengenkomponenten

Sie haben die Wahl zwischen verschiedenen IBX-Datenmengenkomponenten, die jeweils auf einen bestimmten Einsatzzweck zugeschnitten sind:

IBTable

Mit Hilfe einer IBX.IBTable.TIBTable-Komponente können Sie eine Live-Datenmenge für eine Tabelle oder Ansicht einrichten, ohne SQL-Anweisungen eingeben zu müssen.

So konfigurieren Sie IBTable-Komponenten

  1. Ziehen Sie eine IBTable-Komponente in das Formular oder Datenmodul.
  2. Bestimmen Sie die zugehörigen Datenbank- und Transaktionskomponenten.
  3. Wählen Sie in der Dropdown-Liste mit den Tabellennamen den Namen der Beziehung aus.
  4. Setzen Sie dann die Eigenschaft Active auf True.

IBQuery

Mit Hilfe einer IBX.IBQuery.TIBQuery-Komponente können Sie eine InterBase-DSQL-Anweisung ausführen, die Ergebnismenge auf bestimmte Spalten und Zeilen beschränken, Aggregatfunktionen verwenden und mehrere Tabellen miteinander verbinden.

IBQuery-Komponenten stellen eine schreibgeschützte Datenmenge bereit und fügen sich ideal in die Client-/Server-Umgebung von InterBase ein.

So richten Sie eine IBQuery-Komponente ein

  1. Richten Sie eine IBDatabase-Verbindung wie oben beschrieben ein.
  2. Richten Sie eine IBTransaction-Verbindung wie oben beschrieben ein.
  3. Ziehen Sie eine IBQuery-Komponente in das Formular oder Datenmodul.
  4. Bestimmen Sie die zugehörigen Datenbank- und Transaktionskomponenten.
  5. Geben Sie im Stringlisten-Editor eine gültige SQL-Anweisung für die Eigenschaft SQL der IBQuery-Komponente ein.
  6. Setzen Sie die Eigenschaft Active auf True.

IBDataSet

Mit Hilfe einer IBX.IBCustomDataSet.TIBDataSet-Komponente können Sie eine InterBase-DSQL-Anweisung ausführen, die Ergebnismenge auf bestimmte Spalten und Zeilen beschränken, Aggregatfunktionen verwenden und mehrere Tabellen miteinander verbinden. IBDataSet-Komponenten funktionieren ähnlich wie IBQuery-Komponenten, unterstützen aber Live-Datenmengen auch ohne Verwendung einer IBUpdateSQL-Komponente.

Mit den folgenden Schritten erhalten Sie eine Live-Datenmenge für die Tabelle COUNTRY in employee.gdb:

  1. Richten Sie eine IBDatabase-Verbindung wie oben beschrieben ein.
  2. Bestimmen Sie die zugehörigen Datenbank- und Transaktionskomponenten.
  3. Ziehen Sie eine IBDataSet-Komponente in das Formular oder Datenmodul.
  4. Geben Sie SQL-Anweisungen für die folgenden Eigenschaften ein:

SelectSQL

SELECT Country, Currency FROM Country

RefreshSQL

SELECT Country, Currency FROM Country WHERE Country = :Country

ModifySQL

UPDATE Country SET Country = :Country, Currency = :Currency WHERE Country = :Old_Country

DeleteSQL

DELETE FROM Country WHERE Country = :Old_Country

InsertSQL

INSERT INTO Country (Country, Currency) VALUES (:Country, :Currency)
5. Setzen Sie dann die Eigenschaft Active auf True.


Hinweis: Im Dialekt 3 wird bei Parametern und Feldern, die an Funktionen übergeben werden, zwischen Groß- und Kleinschreibung unterschieden. Beispielsweise liefert die Anweisung


FieldByName(EmpNo)

im Dialekt 3 kein Ergebnis, wenn das Feld "EMPNO" lautet.

IBStoredProc

IBX.IBStoredProc.TIBStoredProc-Komponenten werden für ausführbare InterBase-Prozeduren verwendet. Diese liefern maximal eine Zeile mit Daten. Verwenden Sie für Stored Procedures, die mehrere Datenzeilen zurückgeben, und für "Select"-Prozeduren entweder eine IBQuery- oder eine IBDataSet-Komponente.

IBSQL

Verwenden Sie IBX.IBSQL.TIBSQL-Komponenten für kompakte Datenoperationen, die schnell ausgeführt werden. Hierzu gehört beispielsweise die Datendefinition und das Übertragen von Daten von einer Datenbank in eine andere.

Folgendermaßen können Sie mit einer IBSQL-Komponente den nächsten Wert von einem Generator abrufen:

  1. Richten Sie eine IBDatabase-Verbindung wie oben beschrieben ein.
  2. Ziehen Sie eine IBSQL-Komponente in das Formular oder Datenmodul, und weisen Sie ihrer Database-Eigenschaft den Namen der Datenbank zu.
  3. Verfassen Sie im Stringlisten-Editor eine SQL-Anweisung für die Eigenschaft SQL, z.B.:


SELECT GEN_ID(MyGenerator, 1) FROM RDB$DATABASE

IBUpdateSQL

IBX.IBUpdateSQL.TIBUpdateSQL-Komponenten werden verwendet, um schreibgeschützte Datenmengen zu aktualisieren. Sie können beispielsweise die Ausgabe einer IBQuery-Komponente mit Hilfe einer IBUpdateSQL-Komponente aktualisieren:

  1. Richten Sie eine IBQuery-Komponente wie oben beschrieben ein.
  2. Ziehen Sie eine IBUpdateSQL-Komponente in das Formular oder Datenmodul.
  3. Geben Sie SQL-Anweisungen für die folgenden Eigenschaften ein: DeleteSQL, InsertSQL, ModifySQL und RefreshSQL.
  4. Weisen Sie der Eigenschaft UpdateObject der IBQuery-Komponente den Namen der IBUpdateSQL-Komponente zu.
  5. Setzen Sie die Eigenschaft Active der IBQuery-Komponente auf True.

IBSQLMonitor

Verwenden Sie eine IBX.IBSQLMonitor.TIBSQLMonitor-Komponente zur Entwicklung von Diagnose-Tools, mit denen die Kommunikation zwischen der Anwendung und dem InterBase-Server überwacht wird. Wenn die TraceFlag-Eigenschaften einer IBDatabase-Komponente aktiviert sind, können aktive TIBSQLMonitor-Komponenten die Aktivitäten der Verbindung protokollieren und die Ausgabe an eine Datei oder ein Steuerelement senden.

Sie können beispielsweise eine separate Anwendung erstellen, die über eine TIBSQLMonitor-Komponente und ein Memofeld verfügt. Starten Sie diese Sekundäranwendung, und aktivieren Sie für die Primäranwendung die TraceFlag-Eigenschaften der IBDatabase-Komponente. Führen Sie danach in der Primäranwendung einige Aktionen aus, und beobachten Sie, wie das Memofeld der Sekundäranwendung mit Daten gefüllt wird.

IBDatabaseInfo

Mit Hilfe einer IBX.IBDatabaseInfo.TIBDatabaseInfo-Komponente können Sie Informationen über eine Datenbank abrufen (z.B. das Sweep-Intervall, die ODS-Version und die Namen der Benutzer, die gegenwärtig auf die Datenbank zugreifen).

Die folgende Prozedur ist ein Beispiel, das angibt, wie eine IBDatabaseInfo-Komponente für die Anzeige der Benutzer eingerichtet wird, die aktuell mit der Datenbank verbunden sind.

So richten Sie eine IBDatabaseInfo-Komponente ein

  1. Richten Sie eine IBDatabase-Verbindung wie oben beschrieben ein.
  2. Ziehen Sie eine IBDatabaseInfo-Komponente in das Formular oder Datenmodul, und weisen Sie ihrer Database-Eigenschaft den Namen der Datenbank zu.
  3. Fügen Sie eine Memo-Komponente in das Formular ein.
  4. Ziehen Sie eine Timer-Komponente in das Formular, und legen Sie das Intervall fest.
  5. Doppelklicken Sie auf das Feld für das OnTimer-Ereignis des Timers, und geben Sie folgenden (oder einen ähnlichen) Code ein:


Memo1.Text := IBDatabaseInfo.UserNames.Text;   //  Delphi-Beispiel
Memo1->Text = IBDatabaseInfo->UserNames->Text; //  C++ Beispiel

IBEvents

Mit Hilfe einer IBEvents-Komponente kann eine Anwendung Ereignisse eines InterBase-Servers empfangen und asynchron behandeln.

So richten Sie eine IBEvents-Komponente ein

  1. Richten Sie eine IBDatabase-Verbindung wie oben beschrieben ein.
  2. Ziehen Sie eine IBEvents-Komponente in das Formular oder Datenmodul, und weisen Sie ihrer Database-Eigenschaft den Namen der Datenbank zu.
  3. Definieren Sie im Stringlisten-Editor Ereignisse für die Eigenschaft Events, z.B.:
IBEvents.Events.Add('EVENT_NAME');   //  Delphi-Beispiel
IBEvents->Events->Add("EVENT_NAME"); //  C++ Beispiel

4. Setzen Sie die dann Eigenschaft Registered auf True.


InterBase-Verwaltungskomponenten

Wenn InterBase installiert ist, können Sie mit den Komponenten von InterBase Administration die leistungsstarken API-Aufrufe von InterBase Services verwenden.

Die Registerkarte InterBase Admin der IDE enthält folgende Komponenten:

IBX

IBX.IBServices.TIBConfigService

IBX

IBX.IBServices.TIBBackupService

IBX

IBX.IBServices.TIBRestoreService

IBX

IBX.IBServices.TIBValidationService

IBX

IBX.IBServices.TIBStatisticalService

IBX

IBX.IBServices.TIBLogService

IBX

IBX.IBServices.TIBSecurityService

IBX

IBX.IBServices.TIBServerProperties



Hinweis: Diese Funktionen stehen nur zur Verfügung, wenn InterBase installiert ist.

IBConfigService

Verwenden Sie IBX.IBServices.TIBConfigService-Objekte zur Konfiguration von Datenbankparametern wie Seitenpuffer, Asynchron-Modus, Reservespeicher oder Sweep-Intervall.

IBBackupService

Mit Hilfe eines IBX.IBServices.TIBBackupService-Objekts können Sie die Datenbank sichern. IBBackupService-Objekte ermöglichen die Angabe verschiedener Parameter. Sie können beispielsweise einen Blockierungsfaktor, den Namen der Sicherungsdatei und verschiedene Sicherungsoptionen angeben.

IBRestoreService

IBX.IBServices.TIBRestoreService-Objekte werden zur Wiederherstellung von Datenbanken eingesetzt. Sie können verschiedene Parameter angeben, z.B. Seitenpuffer, Seitengröße und Wiederherstellungsoptionen.

IBValidationService

Mit Hilfe eines IBX.IBServices.TIBValidationService-Objekts können Sie eine Datenbank validieren und Datenbanktransaktionen abstimmen. Das IBValidationService-Objekt unterstützt die Angabe einer Standardaktion für die Transaktion, die Rückgabe von Informationen zum Status der Transaktion und weitere Optionen zur Datenbankvalidierung.

IBStatisticalService

IBX.IBServices.TIBStatisticalService-Objekte dienen zur Anzeige von Datenbankinformationen wie Datenseiten, Datenbankprotokoll, Header-Seiten, Indexseiten und Systembeziehungen.

IBLogService

IBX.IBServices.TIBLogService-Objekte werden zur Erstellung von Protokolldateien eingesetzt.

IBSecurityService

IBX.IBServices.TIBSecurityService-Objekte dienen zur Verwaltung des Benutzerzugriffs auf den InterBase-Server. Sie können mit Hilfe eines IBSecurityService-Objekts Benutzerkonten erstellen, ändern und löschen, alle Benutzer anzeigen und (mit SQL-Rollen) Arbeitsgruppen einrichten.

IBServerProperties

Mit Hilfe einer IBX.IBServices.TIBServerProperties-Komponente können Informationen zum Datenbankserver abgerufen werden (Konfigurationsparameter, Versions- und Lizenzinformationen usw.).


Siehe auch