Upload
anelie-zeglin
View
248
Download
13
Embed Size (px)
Citation preview
2
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
Hersteller und Bezugsquellen
Hersteller
Devrace Software Developmenthttp://www.devrace.com
Bezugsquellen im Netz
http://www.devrace.com/en/shop/index.phphttp://www.better-office.de
4
Komponenten I
TpFIBDatabase TpFIBDataSet
TpFIBTransaction TpFIBQuery
TpFIBStoredProc TpFIBUpdateObject
TDataSetsContainer TpFibErrorHandler
TpFIBStatistic TSIBfibEventAlerter
TFIBSQLMonitor TpFIBClientDataSet
TpFIBDataSetProvider
5
Komponenten II
TpFIBServerProperties TpFIBConfigService
TpFIBLicensigService TpFIBLogService
TpFIBStatisticalService TpFIBBackupService
TpFIBRestoreService TpFIBValidationService
TpFIBSecurityService TpFIBInstall
TpFIBUnInstall
7
Firebird fbClient vs. GDS32
fbclient.dll gds32.dll
Generator instclient.exe
instclient i[nstall] [ -f[orce] ] library q[uery] library
r[emove] library
Client-Library ist: f[bclient] | g[ds32]
9
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;
14
FIBDatatset – SQLGenerator VpFIBDSImpSrc.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
FIBDatatset – Transaktionen IAutoCommitAutomatische TransaktionsteuerungBei Live-Querys
poStartTransactionStart einer Transaktion beim Open
16
FIBDatatset – Transaktionen IIUnterschiedliche Transaktionenfür Lesen und Schreiben
Verhinderung von Deadlocks
WriteTransaction nach Post
17
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
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
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
FIBDataSetContainerZentrale Behandlung von Ereignissenfür alle TpFIBDatasets, Events werden„gedoppelt“.
OnDataSetEvent = Ereignis eines TpFIBDateset ( Bsp. if Event = deOnNewRecord then ... )
OnUserEvent = Durch Programm definertes Ereignis
23
FIBQuery III
Select
pFIBQuery.ParamByName ( ‚PARAM_1' ).Value := Wer; pFIBQuery.Open;
Insert | Update | Delete
pFIBQuery.ParamByName ( ‚PARAM_1' ).Value := Wer; pFIBQuery.ExecQuery;
25
ExceptionExeptionhandling via Klasse EFIBError
A:EFIBError
ErrorCode :FLastErrorNum := A.IBErrorCode;
ErrorMessage :FLastErrorMsg := A.Message;
Unit : siehe FIB.SQL
26
FIBErrorHandler
Applikationsweites Fehlerhandling
procedure TDatamoduleFirebirdConnection.pFibErrorHandler1FIBErrorEvent( Sender: TObject; ErrorValue: EFIBError; KindIBError: TKindIBError; var DoRaise: Boolean);begin ...end;
27
FIBSQLMonitorStart : FIBSQLMonitor.Active := true;
Protokoll schreiben:
procedure TDBMod.FIBSQLMonitorSQL
(EventText: String; EventTime: TDateTime);
begin
writeln ( TraceFile , DateTimeToStr ( EventTime ) + ':' + EventText );
end;
Ende : FIBSQLMonitor.Active := false;
28
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
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
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
MacrosSyntax : @MACROS_NAME[%][#]
@ - Beginn eines Macros
% - Standardwert ( optional )
# - Wert in Hochkommas
Bsp.:
select * from @TT%TABLE1 where @F%FIELD1=@VAL%#John
Standardinterpretation:
select * from TABLE1 where FIELD1=‚John‘
32
verfügbare Erweiterungen
gd_DataSetsComponentenDataSet-Ableitungen auf Basis von FIBPlus ( und IBX ) für die Verarbeitung große Datenmengen
pFIBExtractExtraktion von Metadaten in ein SQL-Skript
pFIBScript Sriptkomponente ( Funktionalität entspricht IBX-Skriptkomponente )
http://www.devrace.com/en/fibplus/download/index.php?BID=19&ID=43
33
Tools
IBExpert( Personal – Version ist frei ) http://www.ibexpert.com
IBAdminhttp://www.sqlly.com
u.v.a. mehr -> www.interbasetools.de