Post on 06-Apr-2015
DatenbankenDatenbanken
•Verschiedene Komponenten zur AnbindungVerschiedene Komponenten zur Anbindung
•Zugriffe auf DatenbankinhalteZugriffe auf Datenbankinhalte
•Reportgenerator RAVEReportgenerator RAVE
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)
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
BDE-AliasBDE-Alias
• In der BDE (Systemsteuerung) In der BDE (Systemsteuerung) legen wir einen Alias anlegen wir einen Alias an
ODBC - AliasODBC - Alias
• Ebenso in der ODBCEbenso in der ODBC
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
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
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
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)
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)
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
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
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)
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
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)
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
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
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
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
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
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
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
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;
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