2. Teil im PPT

Werbung
Delphi-Datenbankkomponenten
• Spezielle Programmbibliothek zum Erstellen von
Datenbankanwendungen
• Nutzt konsequent das (objektorientierte) Komponenten-Konzept
von Delphi.
– Kleinere Anwendungen erstellbar ohne Schreiben von ObjectPascalQuellcode
– ObjectPascal-Anteile meist klein und lokal für einzelne Komponenten
• Programm "Datenbankoberfläche":
– Erstellung der Datenbankstruktur
– Experimente mit der Datenbankstruktur (QBE-Anfragen)
– Testhilfsmittel
• Datenbankkomponenten:
– Erstellung von durch Laien benutzbaren Windows-Programmen zur
Dateneingabe und Datenbankabfrage
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Typen von Datenbankkomponenten
• Datenzugriff
– Nichtvisuelle Komponenten
– Repräsentation von Datenbanktabellen in der Entwicklungsumgebung
– Beispiele:
» Table
» DataSource
» Query
• Datensteuerung:
–
–
–
–
Visuelle Komponenten
Datensensitive Bedienungselemente
Müssen an Datenzugriffskomponenten gekoppelt werden
Beispiele:
» DBEdit
» DBNavigator
» DBGrid
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Entwicklungsschritte einer einfachen
Datenbankanwendung
• Table-Komponente einfügen
– Property "DatabaseName": Pfadname für Datenbank-Datei
– Property "TableName": Datenbank-Datei (z.B. Stadt.db)
– Hinweis: Höhere Flexibilität durch Einlesen aus Feldern oder durch
Verwenden von Alias-Namen
• DataSource-Komponente einfügen
– Property "DataSet": Entsprechende Table-Komponente
• Oberfläche mit Datensteuerungs.Komponenten entwerfen
– Property "DataSource": entsprechende DataSource-Komponente
– Property "DataField": ggf. gewünschtes Datenfeld der Tabelle
• Property "Active" der Table-Komponente auf "true" setzen
– Datenbankzugriff erfolgt (zur Entwurfszeit)
• Programm übersetzen und starten
– Datenbankzugriff erfolgt (zur Laufzeit)
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Virtuelle Felder
• Werte für virtuelle Felder einer Tabelle werden indirekt ermittelt
• Hinzufügen "virtueller Felder" zu einer Table-Komponente:
– Doppelklicken von Table und Kontextmenü (rechte Maustaste)
• Arten virtueller Felder:
– Berechnete Felder
– Fremdschlüssel-Zugriff (Lookup)
» Tabellenverbindung herstellen
• Nach geeigneter Konfiguration können virtuelle Felder wie normale
Datenfelder genutzt werden
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Datenbanksprache SQL
• Structured Query Language
– 70er Jahre, Ursprung IBM
– Standardisiert (ANSI)
• Verwendungsarten:
– Direkte Kommandosprache für relationale Datenbanksysteme
– Einbettung in Datenbankkomponenten (Delphi-Komponente Query)
– Einbindung in Quellcode verschiedener Programmiersprachen, z.B.
COBOL, C, Java
» "EXEC SQL <SQL-Text>"
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
SELECT-Anweisungen in SQL
• Syntax:
SELECT <Feldliste>
FROM <Tabellenliste>
WHERE <Einschränkende Bedingung>
• Beispiele:
SELECT STADT, EWZ, LAND
FROM Stadt
SELECT STADT, EWZ, LAND
FROM Stadt
WHERE EWZ > 50000
SELECT STADT, EWZ, NAME
FROM Stadt2, Land
WHERE Stadt2.LAND = Land.LAND_CODE
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
SQL-Anfragen in Datenbankkomponenten
• Query-Komponente
– Datenzugriffskomponente
– Ähnlich einzusetzen wie Table-Komponente
– Enthält SQL-Text (dadurch sehr flexibel)
• Entwicklungsschritte:
– Query-Komponente einfügen
» Property "DatabaseName": Pfadname für Datenbankdatei
» SQL-Text eintragen
– DataSource-Komponente einfügen
» Property "DataSet": entsprechende Query-Komponente
– Nutzung der DataSource in Oberflächen-Elementen
– Property "Active" der Query-Komponente auf "true" setzen
» Datenbankzugriff erfolgt (zur Entwurfszeit)
– Programm übersetzen und starten
» Datenbankzugriff erfolgt (zur Laufzeit)
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Direkte Datenbankoperationen
• Für eine Tabelle (Objekt vom Typ TTable) kännen in Delphi auch
direkt in ObjectPascal Abfragen und Modifikationen durchgeführt
werden.
– Eine genaue Liste der Methoden liefert die Delphi-Online-Hilfe unter
dem Stichwort "TTable".
• Beispiele für Methoden von TTable:
– Open: Äquivalent zum Setzen der Property "Active" auf true
– First, Next, EOF, Last, Prior, BOF:
Zugriff über Satzzeiger (sh. separate Folie)
– Edit: Setzt Editiermodus für Tabelle
– Post: Schreibt modifizierten Datensatz zurück in die Tabelle
• Zugriffe auf aktuelle Datenfeldwerte der Tabelle (an der aktuellen
Satzzeigerposition):
– <Tabellenname>['<Feldname>'] (Zugriff über Feldname)
– <Tabellenname>.Fields[<integer>]
(Zugriff über lfd. Nummer des Feldes, mit 0 beginnend)
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Schriftliche Berichte erstellen
• Ein wesentlicher Zweck von Datenbanken ist die Erstellung
schriftlicher Berichte:
– Gehaltslisten, Statistiken, Bestellungen, Rechnungen, ...
• Sogenannte "QuickReport"-Komponenten ermöglichen eine
schnelle interaktive Erstellung dieser speziellen Abfragen.
• Arbeitsschritte:
– QuickRep-Komponente einfügen
» Property "Bands": Gewünschte Teilbereiche
» Property "DataSet": Tabelle für Gesamtliste
– Weitere QuickReport-Komponenten einfügen und konfigurieren:
» QRLabel: Überschriften, Texte
» QRDBText: Wiedergabe von Datenfeldinformation
• Property "DataSet": Tabelle für dieses Datenfeld
• Property "DataField": Entsprechendes Datenfeld
» QRExpr: Berechnen von Ausdrücken über Datenbestand
• Interaktiver Editor
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Herunterladen