Anzeigen verschiedener Tabellen (Allgemeines IBX-Tutorial)
Nach oben zu Tutorial: Mit InterBase Express auf eine Datenbank zugreifen
In diesem Abschnitt wird ein Formular für die Anzeige verschiedener Datenbanktabellen erstellt. Das Formular verwendet die Datenbank EMPLOYEE, die mit RAD Studio installiert wird.
Nach dem Hinzufügen der Komponenten sieht das Formular folgendermaßen aus:
Inhaltsverzeichnis
Erstellen des Formulars
Fügen Sie zunächst dem Projekt ein weiteres VCL-Formular hinzu. Klicken Sie dazu in der Projektverwaltung mit der rechten Maustaste auf das Projekt, und wählen Sie den Menüeintrag Neue hinzufügen >VCL-Formular.
Legen Sie die Eigenschaften des Formulars fest:
- Setzen Sie die Eigenschaft Caption auf "Table/View Switcher".
- Setzen Sie Name auf "FrmViewDemo".
- Ändern Sie die Eigenschaft Height des Formulars in 330 und die Eigenschaft Width in 400.
- Setzen Sie OldCreateOrder auf true.
Speichern Sie das Formular:
- Delphi: Speichern Sie die Datei unter dem Namen FrmViews.pas.
Hinzufügen von Datenbankkomponenten
Fügen Sie zuerst die Datenbankkomponenten hinzu. Später konfigurieren Sie die datensensitiven Komponenten, um Daten aus den Datenbankkomponenten abzurufen. Da die Datenbankkomponenten nicht visuell sind, können sie sich an einer beliebigen Position im Formular befinden. Positionieren Sie diese Komponenten aber so, dass sie keine visuellen Komponenten verbergen.
- Platzieren Sie eine TIBDatabase-Komponente, die eine InterBase-Datenbankverbindung repräsentiert, auf dem Formular. Doppelklicken Sie auf die neue TIBDatabase-Komponente, um den Datenbankkomponenten-Editor anzuzeigen. Legen Sie die Eigenschaften für die TIBDatabase-Komponente in diesem Dialogfeld fest:
- In diesem Tutorial wird die Datenbank EMPLOYEE verwendet, die mit RAD Studio installiert wird. Der Pfad lautet:
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\EMPLOYEE.GDB
. Wenn Sie den Benutzernamen und das Passwort angeben, kann die Eigenschaft LoginPrompt false sein.
Hinweis: Wenn Sie, wie in diesem Beispiel, das Passwort in die Anwendung einbetten, kann jeder auf die Datenbank ohne Anmeldung zugreifen.
- Fügen Sie dem Formular eine TIBTransaction-Komponente hinzu. Setzen Sie die Eigenschaft DefaultTransaction der TIBDatabase-Komponente auf "IBTransaction1".
- Platzieren Sie eine TIBDataSet-Komponente auf dem Formular. Setzen Sie die Eigenschaft Transaction auf "IBTransaction1". Verbinden Sie diese TIBDataSet-Komponente mit der Datenbank, indem Sie die Eigenschaft Database im Dropdown-Menü auf "IBDatabase1" setzen. Setzen Sie die Eigenschaft Name auf "VaryingDataSet".
- Fügen Sie dem Formular eine TDataSource-Komponente hinzu. Diese Komponente dient als Schnittstelle zwischen der TIBDataSet]-Datenmenge und den datensensitiven Steuerelementen. Setzen Sie die Eigenschaft DataSet der TDataSource-Komponente im Dropdown-Menü auf "VaryingDataSet". Setzen Sie die Eigenschaft Name auf "VaryingTableSource".
Hinzufügen visueller Komponenten
Fügen Sie nun die Komponenten zur Anzeige der Datenbankdaten hinzu, und verbinden Sie sie mit den Datenbankkomponenten.
Fügen Sie zwei TPanel-Komponenten hinzu, und ordnen Sie sie wie in der folgenden Abbildung an. Diese TPanel-Komponenten dienen als Rahmen zum Anordnen der visuellen Komponenten. Positionieren Sie sie, wie in der folgenden Abbildung, so, dass sie das gesamte Formular ausfüllen.
Fügen Sie der TPanel-Komponente "Panel1" folgende Komponenten hinzu.
- Platzieren Sie für die Navigation in den Datensätzen der Datenbank eine TDBNavigator-Komponente auf "Panel1". Setzen Sie DataSource auf "VaryingTableSource". Die Komponente TDataSource dient als Schnittstelle zwischen der TIBDataSet und den datensensitiven Steuerelementen.
- Fügen Sie "Panel1" eine TSpeedButton-Komponente hinzu.
- Zur Auswahl eines Symbols für TSpeedButton klicken Sie im Objektinspektor auf die Ellipsenschaltfläche (...) neben der Eigenschaft Glyph, um das Dialogfeld Bildeditor zu öffnen. Klicken Sie auf die Schaltfläche Laden..., um eine Bitmap-Datei für das Symbol auszuwählen. Ein Bitmap im erforderlichen Format finden Sie im Beispiel CsDemos in der Unit Frmviews bei TSpeedButton. Wählen Sie die TSpeedButton-Komponente aus, öffnen Sie den Bildeditor, klicken Sie auf Speichern..., und speichern Sie das Bitmap in einer Bitmap-Datei.
- Setzen Sie die Eigenschaft GroupIndex auf 1.
- Setzen Sie die Eigenschaft Name auf BtnShowEmployeeClick
- Fügen Sie eine weitere TSpeedButton-Komponente hinzu, und platzieren Sie sie rechts neben der anderen TSpeedButton-Komponente. Setzen Sie deren Eigenschaften Glyph und GroupIndex entsprechend der ersten TSpeedButton-Schaltfläche.
- Platzieren Sie eine TBitBtn-Komponente auf der rechten Seite von "Panel1". Setzen Sie die folgenden Eigenschaften:
- Setzen Sie Glyph analog zu den TSpeedButton-Schaltflächen.
- Setzen Sie im Dropdown-Menü die Eigenschaft Kind auf "bkClose". Mit dieser Einstellung führt die Schaltfläche einen Befehl zum Schließen des Dialogfeldes aus, wenn Sie auf die TBitBtn-Schaltfläche klicken.
- Setzen Sie Caption auf "E&xit". Das Tastenkürzel
ALT+X
führt dann dieselbe Aktion wie das Klicken auf die Schaltfläche aus. - Setzen Sie die Eigenschaft Name auf BtnShowEmployeeClick
Fügen Sie der TPanel-Komponente "Panel2" eine Komponente hinzu.
- Platzieren Sie eine TDBGrid-Komponente auf "Panel2". Ändern Sie deren Größe so, dass sie die gesamte TPanel-Komponente ausfüllt. Setzen Sie DataSource im Dropdown-Menü auf "VaryingTableSource".
Hinzufügen des Quellcodes
Vervollständigen Sie das Formular durch Hinzufügen einer Routine und Erstellen von Ereignisbehandlungsroutinen für die TSpeedButton-Komponenten. Für TBitBtn ist keine Ereignisbehandlungsroutine erforderlich, weil dieser Schaltfläche bereits ein Befehl zugeordnet ist.
Fügen Sie die Routine ShowTable hinzu, die die angegebenen Tabellen anzeigt.
Delphi
Fügen Sie dem private
-Bereich des Abschnitts type
von FrmViews.pas diese Prozedur hinzu:
procedure ShowTable(ATable: string);
Sie können mit der Klassenvervollständigung (öffnen mit STRG+UMSCH+C
einen Stub für diese Funktion im implementation
-Abschnitt erstellen.
Fügen Sie den folgenden Code in die neue Prozedur ein:
procedure TFrmViewDemo.ShowTable( ATable: string );
begin
Screen.Cursor := crHourglass; { show user something's happening }
VaryingDataSet.DisableControls; { hide data changes from user }
VaryingDataSet.Active := FALSE; { close the table }
VaryingDataSet.SelectSQL.Text:= 'SELECT * FROM '+ ATable; { update the name }
VaryingDataSet.Open; { open the table }
VaryingDataSet.EnableControls; { paint the changes }
Screen.Cursor := crDefault; { reset the pointer }
end;
ShowTable
führt alle zum Anzeigen der Daten einer gegebenen Tabelle erforderlichen Aktionen aus. Insbesondere setzt ShowTable
die Eigenschaft TIBDataSet SelectSQL, um Daten von der aktuellen Tabelle auszuwählen.
Fügen Sie zum Abschluss die Ereignisbehandlungsroutinen hinzu. Doppelklicken Sie auf der Registerkarte Design auf die erste TSpeedButton-Schaltfläche. Dadurch wird ein Prototyp für die Ereignisbehandlungsroutine hinzugefügt und Stub-Code dafür erstellt. Fügen Sie den folgenden Code in den implementation
-Abschnitt für die Prozedur ein:
procedure TFrmViewDemo.BtnShowEmployeeClick(Sender: TObject);
begin
ShowTable('EMPLOYEE');
end;
Fügen Sie eine Ereignisbehandlungsroutine für die zweite TSpeedButton-Schaltfläche mit dem folgenden Code auf dieselbe Weise hinzu:
procedure TFrmViewDemo.BtnShowPhoneListClick(Sender: TObject);
begin
ShowTable('PHONE_LIST');
end;
Diese Routinen rufen nur ShowTable
zum Festlegen der jeweiligen Tabelle auf.
Anzeigen des Formulars für die Tabellendarstellung
Ändern Sie das Hauptformular, das Sie im Abschnitt Erstellen des Hauptformulars angelegt haben, damit die Schaltfläche das gerade erstellte Formular anzeigt.
Delphi
Fügen Sie Folgendes am Anfang des implementation
-Abschnitts von Frmmain.pas ein, damit das Hauptformular die gerade hinzugefügte Unit FrmViews finden kann:
uses
FrmViews; { The View Demo }
Fügen Sie anschließend eine Ereignisbehandlungsroutine für die Schaltfläche des Hautformulars hinzu, indem Sie auf der Registerkarte Design von Frmmain.pas auf diese Schaltfläche doppelklicken. Verwenden Sie den folgenden Quellcode für die Ereignisbehandlungsroutine:
procedure TFrmLauncher.BtnViewsClick(Sender: TObject);
begin
FrmViewDemo.ShowModal;
end;
ShowModal zeigt das Formular als modales Dialogfeld an, damit die Anwendung erst weiter ausgeführt wird, wenn das Dialogfeld wieder geschlossen ist. In diesem Fall wartet das Hauptdialogfeld so lange, bis das Tabellenformular angezeigt wird.
Ausführen der Anwendung
Compilieren Sie die Anwendung, und führen Sie sie aus. Das Hauptformular wird angezeigt:
Klicken Sie auf die Schaltfläche, um das Formular für die Tabellendarstellung anzuzeigen:
Beachten Sie, dass die TDBGrid-Komponente leer ist, weil noch keine Tabelle ausgewählt wurde. Klicken Sie auf die linke TSpeedButton-Schaltfläche, um die Tabelle EMPLOYEE anzuzeigen:
Wenn Sie auf die andere TSpeedButton-Schaltfläche klicken, wird die Tabelle PHONE_LIST angezeigt.
Durch Klicken auf die TBitBtn-Schaltfläche mit dem Titel Schließen wird das Formular zur Tabellendarstellung geschlossen.