Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe...

24
Datenbanken Datenbanken Verschiedene Komponenten zur Anbindung Verschiedene Komponenten zur Anbindung Zugriffe auf Datenbankinhalte Zugriffe auf Datenbankinhalte Reportgenerator RAVE Reportgenerator RAVE

Transcript of Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe...

Page 1: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

DatenbankenDatenbanken

•Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung

•Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte

•Reportgenerator RAVEReportgenerator RAVE

Page 2: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Wie ist eine Datenbank Wie ist eine Datenbank aufgebaut?aufgebaut?

• Eine Datenbank enthält mehrere Eine Datenbank enthält mehrere DatentabellenDatentabellen

• Eine Datentabelle enthält Eine Datentabelle enthält DatensätzeDatensätze (Zeilen) (Zeilen)

Page 3: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Verbindung mittels Verbindung mittels BDE/ODBC-AliasBDE/ODBC-Alias

• BDEBDE = Borland Database Engine = Borland Database EngineÜber ihre Schnittstelle lassen sich die Über ihre Schnittstelle lassen sich die verschiedensten Datanbanken ansprechenverschiedensten Datanbanken ansprechen

• ODBCODBC = Open DataBase = Open DataBase ConnectivityConnectivityErlaubt Verbindungen zu Datenbanken Erlaubt Verbindungen zu Datenbanken unabhängig vom Betriebssystem und unabhängig vom Betriebssystem und ProgrammProgramm

Page 4: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

BDE-AliasBDE-Alias

• In der BDE (Systemsteuerung) In der BDE (Systemsteuerung) legen wir einen Alias anlegen wir einen Alias an

Page 5: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

ODBC - AliasODBC - Alias

• Ebenso in der ODBCEbenso in der ODBC

Page 6: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

In DelphiIn DelphiTTable + TDatasourceTTable + TDatasource

• Die Komponente Die Komponente TTableTTableDatabaseNameDatabaseName = Alias eurer Datenbank = Alias eurer Datenbank

TableName TableName = Name der gewünschten Tabelle = Name der gewünschten Tabelle in eurer Datenbank in eurer Datenbank

• Die Komponente Die Komponente TDatasourceTDatasourceDatasetDataset ist unser TTable-Objekt ist unser TTable-Objekt

TTableDatabaseName

TableName

Name

TDatasource

DatasetDatensensitve Steuerelemente

BDE

Page 7: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

In DelphiIn DelphiTDatabase + TTable + TDatasourceTDatabase + TTable + TDatasource

• Die Komponente Die Komponente TDatabaseTDatabaseDatabaseNameDatabaseName = Alias eurer Datenbank = Alias eurer Datenbank

TTable kapselt eine Tabelle der DatenbankTTable kapselt eine Tabelle der Datenbank

TDatabase stellt hingegen die gesamte TDatabase stellt hingegen die gesamte Datenbank darDatenbank dar

Page 8: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

In DelphiIn DelphiTQuery + TDatasourceTQuery + TDatasource

• Die Komponente Die Komponente TQueryTQueryMit TQuery können Sie mit Hilfe von SQL-Mit TQuery können Sie mit Hilfe von SQL-Anweisungen auf Tabellen in einer Datenbank Anweisungen auf Tabellen in einer Datenbank zugreifenzugreifen

DatabaseNameDatabaseName = Alias eurer Datenbank = Alias eurer Datenbank

SQL SQL = eure SQL-Anweisung = eure SQL-Anweisung

TQueryDatabaseName

SQL

Name

TDatasource

DatasetDatensensitve Steuerelemente

BDE

Page 9: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

MS Access vs. ParadoxMS Access vs. Paradox

• Access: Datenbank besteht aus einer Access: Datenbank besteht aus einer DateiDatei

• Paradox: Jede Tabelle in min. 2 Dateien Paradox: Jede Tabelle in min. 2 Dateien Instabilität Instabilität

• Access: Zugriff über MS Jet EngineAccess: Zugriff über MS Jet Engine• Paradox: Zugriff über BDEParadox: Zugriff über BDE

Einbindung in Delphi analog zur Access Einbindung in Delphi analog zur Access Datenbank (aber ohne ODBC)Datenbank (aber ohne ODBC)

Page 10: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Anbindung mittelsAnbindung mittelsGM DAO-KomponentenGM DAO-Komponenten

• DAO DAO = Data Access Objects= Data Access Objects

• Anbindung einer Access- Datenbank Anbindung einer Access- Datenbank ohne BDEohne BDE

• Sehr vielseitige KomponentenSehr vielseitige Komponenten(z.B. eine einzige Komponente anstatt verschiedene (z.B. eine einzige Komponente anstatt verschiedene Query und Table Komponenten)Query und Table Komponenten)

Page 11: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Anbindung mittelsAnbindung mittelsGM DAO-KomponentenGM DAO-Komponenten

• Die Komponente Die Komponente TGMDaoDatabaseTGMDaoDatabaseDaoLibraryDaoLibrary = dlDAO35 (Access 97) = dlDAO35 (Access 97)

= dlDAO36 (Access 2000)= dlDAO36 (Access 2000)

DatabaseFileDatabaseFile = Pfad der Datenbank = Pfad der Datenbank

• Die Komponente Die Komponente TGMDaoDatasetTGMDaoDatasetDAODatabaseDAODatabase = die GMDaoDatabase = die GMDaoDatabase

TGMDaoDatabase TGMDaoDataset

TGMDaoDataset

TDatasource

Page 12: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Anbindung mittelsAnbindung mittelsADO-KomponentenADO-Komponenten

• ADOADO = ActiveX Data Objects = ActiveX Data Objects

• Anbindung einer Datenbank ohne Anbindung einer Datenbank ohne BDEBDE

TADOConnection

TADOTable

TADOTable

TADOQuery

TDatasource

Page 13: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Vorteile der ADO Vorteile der ADO gegenüber DAOgegenüber DAO

• ADO ist „aktueller“ADO ist „aktueller“

• ADO ermöglicht Zugriff auf fast alle ADO ermöglicht Zugriff auf fast alle Datenbanktypen (vor allem MS SQL-Server und Datenbanktypen (vor allem MS SQL-Server und Access)Access)

• Keine Voraussetzungen, bzw. MS Keine Voraussetzungen, bzw. MS EntwicklerlizenzenEntwicklerlizenzen

• i.d.R bereits auf vielen Rechnern installiert (u.a. i.d.R bereits auf vielen Rechnern installiert (u.a. durch Internet Explorer)durch Internet Explorer)

Page 14: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Zugriff auf Zugriff auf DatenbankinhalteDatenbankinhalte

1.1. Mit Table-KomponentenMit Table-KomponentenWir verwenden hier die MethodenWir verwenden hier die Methoden

Insert Insert : Fügt einen neuen Datensatz ein: Fügt einen neuen Datensatz ein

EditEdit : Verändert den aktuellen Datensatz : Verändert den aktuellen Datensatz

PostPost : Sendet die Änderungen : Sendet die Änderungen

FirstFirst((LastLast) : Erster (letzter) Datensatz ) : Erster (letzter) Datensatz wird aktueller Darensatzwird aktueller Darensatz

PriorPrior((NextNext) : Voriger (nächster) Datensatz ) : Voriger (nächster) Datensatz wird aktueller Darensatzwird aktueller Darensatz

Page 15: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Zugriff auf Zugriff auf DatenbankinhalteDatenbankinhalte

2. Mit Query-Komponente2. Mit Query-KomponenteHier senden wir eine SQL-Abfrage an die Hier senden wir eine SQL-Abfrage an die

Datenbank und werten die Antwort ausDatenbank und werten die Antwort aus

SQLSQL : Liste von Strings (TStrings) : Liste von Strings (TStrings)SQL.TextSQL.Text : Stellt die Liste als einen String dar : Stellt die Liste als einen String darOpenOpen ( (CloseClose) : Öffnet die Datenmenge, bzw. führt ) : Öffnet die Datenmenge, bzw. führt

den SQL-Befehl aus (nur für „Select“ den SQL-Befehl aus (nur für „Select“ verwenden)verwenden)

ExecSQLExecSQL : Führt ebenfalls den SQL-Befehl aus : Führt ebenfalls den SQL-Befehl aus (Für alle anderen Befehle verwenden)(Für alle anderen Befehle verwenden)

Page 16: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Reportgenerator RAVEReportgenerator RAVE

• Ermöglicht die Erstellung von Ermöglicht die Erstellung von Berichten anhand unserer Berichten anhand unserer DatenbankinhalteDatenbankinhalte

• Das Design der Berichte kann Das Design der Berichte kann individuell gestaltet werdenindividuell gestaltet werden

• Ausgabe als Druck, PDF, HTML, etc. Ausgabe als Druck, PDF, HTML, etc. möglich möglich

Page 17: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Reportgenerator RAVEReportgenerator RAVETRvDatasetConnectionTRvDatasetConnection

• Stellt die Verbindung zwischen Stellt die Verbindung zwischen Datenbank und Rave-Objekten darDatenbank und Rave-Objekten dar

• DatasetDataset = unser Table-Objekt = unser Table-Objekt

TRvDatasetConnectionTabelle

Page 18: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Reportgenerator RAVEReportgenerator RAVERave DesignerRave Designer

• Zu finden unter Tools -> Rave DesignerZu finden unter Tools -> Rave Designer

• Grafische Oberfläche zur Erstellung des Grafische Oberfläche zur Erstellung des Design und Integration der DatenDesign und Integration der Daten

• Speichert die Informationen in einer .rav Speichert die Informationen in einer .rav - Datei- Datei

Design.rav

Page 19: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Reportgenerator RAVEReportgenerator RAVETRvProjektTRvProjekt

• Bindet das gespeicherte Design einBindet das gespeicherte Design ein• ProjektFileProjektFile = Pfad und Name = Pfad und Name

unseres Designsunseres Designs

TRvDatasetConnectionTabelle TRvProjekt

Design.ravDruck

Vorschau

PDF

Page 20: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Reportgenerator RAVEReportgenerator RAVETRvProjektTRvProjekt

• SelectReportSelectReport('Report1', True)('Report1', True)

Wählt den gewünschten Bericht Wählt den gewünschten Bericht unseres Designsunseres Designs

• ExecuteReportExecuteReport('Report1')('Report1')

Erzeugt nun eine Vorschau, den Erzeugt nun eine Vorschau, den Druck oder eine DateiDruck oder eine Datei

Dialog bei AusführungDialog bei Ausführung

Page 21: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Reportgenerator RAVEReportgenerator RAVETRvNDRWriterTRvNDRWriter

• Wird verwendet, um einem Report in Wird verwendet, um einem Report in einem speziellen binären Format zu einem speziellen binären Format zu speichern, bevor er gedruckt oder in der speichern, bevor er gedruckt oder in der Vorschau angezeigt wird.Vorschau angezeigt wird.

• Units (Maßeinheit)Units (Maßeinheit) sollte der selbe Wert sollte der selbe Wert wie im Design zugewiesen werdenwie im Design zugewiesen werden

• StreamModeStreamMode = smMemory = smMemory

Page 22: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Reportgenerator RAVEReportgenerator RAVETRvRenderPDFTRvRenderPDF

• konvertiert das Ergebnis unseres konvertiert das Ergebnis unseres TRvNDRWriter - Objekts in das PDF-TRvNDRWriter - Objekts in das PDF-FormatFormat

TRvDatasetConnection

Tabelle

TRvProjekt

Design.rav

TRvNDRWriter TRvRenderPDF

Design.pdf

Page 23: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

Reportgenerator RAVEReportgenerator RAVEAutomatische PDF-ErzeugungAutomatische PDF-Erzeugung

var var

Meinedatei : tfilestream; Meinedatei : tfilestream;

Datei : string; Datei : string;

begin begin

datei:='C:\test.pdf'; datei:='C:\test.pdf';

rvproject1.Engine:=RvNDRWriter1;rvproject1.Engine:=RvNDRWriter1;

rvproject1.SelectReport('Report2',true); rvproject1.SelectReport('Report2',true);

rvproject1.Open; rvproject1.Open;

rvproject1.ExecuteReport('Report2');rvproject1.ExecuteReport('Report2');

application.ProcessMessages; application.ProcessMessages;

meinedatei:=tfilestream.Create(rvndrwriter1.FileName,fmopenread); meinedatei:=tfilestream.Create(rvndrwriter1.FileName,fmopenread);

try try

rvrenderpdf1.printrender(meinedatei,datei); rvrenderpdf1.printrender(meinedatei,datei);

finally finally

meinedatei.free; meinedatei.free;

Page 24: Datenbanken Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte Reportgenerator.

LinksLinks

Anbindung einer Datenbank mittels Anbindung einer Datenbank mittels ODBC/BDEODBC/BDE

http://www.bildung.hessen.de/abereich/inform/skii/http://www.bildung.hessen.de/abereich/inform/skii/material/delphi/datenbank/dbrr1.htmmaterial/delphi/datenbank/dbrr1.htm

Anbindung mittels ADO-KomponentenAnbindung mittels ADO-Komponentenhttp://www.tutorials.delphi-source.de/ado/index.shtmlhttp://www.tutorials.delphi-source.de/ado/index.shtml

Anbindung mittels DAO-KomponentenAnbindung mittels DAO-Komponentenhttp://www.gm-software.de/index.htmlhttp://www.gm-software.de/index.html