Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Delphi & FIBPlus Firebird und InterBase mit Delphi und FIBPlus DL33 | IB4.

Ähnliche Präsentationen


Präsentation zum Thema: "Delphi & FIBPlus Firebird und InterBase mit Delphi und FIBPlus DL33 | IB4."—  Präsentation transkript:

1 Delphi & FIBPlus Firebird und InterBase mit Delphi und FIBPlus DL33 | IB4

2 1 Was ist FIBPlus Komponenten zum nativen Zugriff auf Interbase und Firebird Alternative zu IBX mit Unterstützung des Open-Source RDBMS Firebird Verfügbar für Delphi ( 3-7 ), C++-Builder (5-6 ) und Kylix 3 Unterstützt Interbase 4-7.x und Firebird 1.x

3 2 Hersteller und Bezugsquellen Hersteller Devrace Software Development Bezugsquellen im Netz

4 3 Komponenten I TpFIBDatabaseTpFIBDataSet TpFIBTransactionTpFIBQuery TpFIBStoredProcTpFIBUpdateObject TDataSetsContainerTpFibErrorHandler TpFIBStatisticTSIBfibEventAlerter TFIBSQLMonitorTpFIBClientDataSet TpFIBDataSetProvider

5 4 Komponenten II TpFIBServerPropertiesTpFIBConfigService TpFIBLicensigServiceTpFIBLogService TpFIBStatisticalServiceTpFIBBackupService TpFIBRestoreServiceTpFIBValidationService TpFIBSecurityServiceTpFIBInstall TpFIBUnInstall

6 5 Zugriff auf InterBase & FireBird Anwendung fbclient.dllgds32.dll FirebirdInterbase

7 6 Firebird fbClient vs. GDS32 fbclient.dllgds32.dll Generator instclient.exe instclient i[nstall] [ -f[orce] ] library q[uery] library r[emove] library Client-Library ist: f[bclient] | g[ds32]

8 7 FIBDatabase I

9 8 FIBDatabase II pFIBDatabase.Connected := false; pFIBDatabase.DBParams.Clear; pFIBDatabase.DBParams.Add ( 'user_name=' + FUsername ); pFIBDatabase.DBParams.Add ( 'password=' + FPassword ); pFIBDatabase.DBParams.Add ( 'lc_ctype=ISO8859_1'); pFIBDatabase.DBParams.Add ( 'SQL_DIALECT=3' ); pFIBDatabase.SQLDialect := 3; pFIBDatabase.DBName := Datenbank; pFIBDatabase.Connected := true;

10 9 FIBDatatset – SQLGenerator I

11 10 FIBDatatset – SQLGenerator II Erzeugen von Live-Querys I

12 11 FIBDatatset – SQLGenerator III Erzeugen von Live-Querys II

13 12 FIBDatatset – SQLGenerator IV Erzeugen von Live-Querys III

14 13 FIBDatatset – SQLGenerator V pFIBDSImpSrc.SelectSQL.Add('SELECT * FROM ' + Tabelle ); pFIBDSImpSrc.Open; pFIBDSImpSrc.InsertSQL.Add (pFIBDSImpSrc.GenerateSQLTextWA ( Tabelle, skInsert )); pFIBDSImpSrc.UpdateSQL.Add ( pFIBDSImpSrc.GenerateSQLTextWA ( Tabelle, skModify)); pFIBDSImpSrc.DeleteSQL.Add (pFIBDSImpSrc.GenerateSQLTextWA ( Tabelle,skDelete)); pFIBDSImpSrc.RefreshSQL.Add (pFIBDSImpSrc.GenerateSQLTextWA ( Tabelle,skRefresh));

15 14 FIBDatatset – Transaktionen I AutoCommit Automatische Transaktionsteuerung Bei Live-Querys poStartTransaction Start einer Transaktion beim Open

16 15 FIBDatatset – Transaktionen II Unterschiedliche Transaktionen für Lesen und Schreiben Verhinderung von Deadlocks WriteTransaction nach Post

17 16 FIBDataSet – Master /Detail Im Detail-DataSet müssen einige Eigenschaft gesetzt werden dcForceOpen = Detail-DataSet wird nach öffnen des Master-DataSets ebenfalls geöffnet dcForceMasterRefresh = wird der Cursor in einem Master-DataSet geändert, wird automatisch das Detail- DataSet neu geöffnet

18 17 FIBDataSet – Arrays-Felder I with ArrayDataSet do begin try FInShowArrays := true; v := ArrayFieldValue(FieldByName('LANGUAGE_REQ')); Edit1.Text := VarToStr(v[1]); Edit2.Text := VarToStr(v[2]); Edit3.Text := VarToStr(v[3]); Edit4.Text := VarToStr(v[4]); Edit5.Text := VarToStr(v[5]); finally FInShowArrays:=false end; End;

19 18 FIBDataSet – Arrays-Felder II with ArrayDataSet do begin SetArrayValue(FieldByName('LANGUAGE_REQ'), VarArrayOf([ Edit1.Text, Edit2.Text, Edit3.Text, Edit4.Text, Edit5.Text ])); end;

20 19 FIBDataSetContainer Zentrale Behandlung von Ereignissen für alle TpFIBDatasets, Events werden gedoppelt. OnDataSetEvent = Ereignis eines TpFIBDateset ( Bsp. if Event = deOnNewRecord then... ) OnUserEvent = Durch Programm definertes Ereignis

21 20 FIBQuery I

22 21 FIBQuery II - SQLGenerator

23 22 FIBQuery III Select pFIBQuery.ParamByName ( PARAM_1' ).Value := Wer; pFIBQuery.Open; Insert | Update | Delete pFIBQuery.ParamByName ( PARAM_1' ).Value := Wer; pFIBQuery.ExecQuery;

24 23 FIBStoredProc basiert auf FIB-Query, Erweiterungen zum einfachen Zugriff auf Stored Proceduren

25 24 Exception Exeptionhandling via Klasse EFIBError A:EFIBError ErrorCode : FLastErrorNum := A.IBErrorCode; ErrorMessage : FLastErrorMsg := A.Message; Unit : siehe FIB.SQL

26 25 FIBErrorHandler Applikationsweites Fehlerhandling procedure TDatamoduleFirebirdConnection.pFibErrorHandler1FIBErrorEvent ( Sender: TObject; ErrorValue: EFIBError; KindIBError: TKindIBError; var DoRaise: Boolean); begin... end;

27 26 FIBSQLMonitor Start : FIBSQLMonitor.Active := true; Protokoll schreiben: procedure TDBMod.FIBSQLMonitorSQL (EventText: String; EventTime: TDateTime); begin writeln ( TraceFile, DateTimeToStr ( EventTime ) + ':' + EventText ); end; Ende : FIBSQLMonitor.Active := false;

28 27 Nutzerverwaltung - TpFIBSecurityService Bsp. : Das Anlegen eines Nutzers // pFIBSecurityService.SecurityAction := ActionAddUser; pFIBSecurityService.FirstName := Hermann; pFIBSecurityService.LastName := Mustermann; pFIBSecurityService.UserName := scott; pFIBSecurityService.Password := tiger; pFIBSecurityService.AddUser; //

29 28 TpFIBBackupService // pFIBBackupService.BackupFile.Clear; pFIBBackupService.Params.Clear; // pFIBBackupService.Params.Add ( 'user_name=sysdba' ); pFIBBackupService.Params.Add ( 'password=masterkey ); pFIBBackupService.DatabaseName := C:\Test.fdb; pFIBBackupService.BackupFile.Add ( C:\Test.fbk ); // pFIBBackupService.Active := true; pFIBBackupService.ServiceStart; while pFIBBackupService.IsServiceRunning do ; pFIBBackupService.Active := false; //

30 29 TpFIBRestoreService // pFIBRestoreService.BackupFile.Clear; pFIBRestoreService.BackupFile.Add ( C:\Test.fbk ); // pFIBRestoreService.Params.Clear; pFIBRestoreService.Params.Add ( 'user_name=sysdba' ); pFIBRestoreService.Params.Add ( 'password=masterkey ); pFIBRestoreService.DatabaseName := C:\Test.fdb; pFIBRestoreService.BackupFile.Add ( C:\Test.fbk ); // pFIBRestoreService.Active := true; pFIBRestoreService.ServiceStart; while pFIBRestoreService.IsServiceRunning do ; pFIBRestoreService.Active := false; //

31 30 Macros Beginn eines Macros %- Standardwert ( optional ) #- Wert in Hochkommas Bsp.: select * where Standardinterpretation: select * from TABLE1 where FIELD1=John

32 31 verfügbare Erweiterungen gd_DataSetsComponenten DataSet-Ableitungen auf Basis von FIBPlus ( und IBX ) für die Verarbeitung große Datenmengen pFIBExtract Extraktion von Metadaten in ein SQL-Skript pFIBScript Sriptkomponente ( Funktionalität entspricht IBX-Skriptkomponente )

33 32 Tools IBExpert( Personal – Version ist frei ) IBAdmin u.v.a. mehr ->


Herunterladen ppt "Delphi & FIBPlus Firebird und InterBase mit Delphi und FIBPlus DL33 | IB4."

Ähnliche Präsentationen


Google-Anzeigen