Firebird und InterBase mit Delphi und FIBPlus DL33 | IB4 Delphi & FIBPlus Firebird und InterBase mit Delphi und FIBPlus DL33 | IB4
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
Hersteller und Bezugsquellen Hersteller Devrace Software Development http://www.devrace.com Bezugsquellen im Netz http://www.devrace.com/en/shop/index.php http://www.better-office.de
Komponenten I TpFIBDatabase TpFIBDataSet TpFIBTransaction TpFIBQuery TpFIBStoredProc TpFIBUpdateObject TDataSetsContainer TpFibErrorHandler TpFIBStatistic TSIBfibEventAlerter TFIBSQLMonitor TpFIBClientDataSet TpFIBDataSetProvider
Komponenten II TpFIBServerProperties TpFIBConfigService TpFIBLicensigService TpFIBLogService TpFIBStatisticalService TpFIBBackupService TpFIBRestoreService TpFIBValidationService TpFIBSecurityService TpFIBInstall TpFIBUnInstall
Zugriff auf InterBase & FireBird Anwendung fbclient.dll gds32.dll Firebird Interbase
Firebird fbClient vs. GDS32 Generator instclient.exe instclient i[nstall] [ -f[orce] ] library q[uery] library r[emove] library Client-Library ist: f[bclient] | g[ds32] fbclient.dll gds32.dll
FIBDatabase I
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;
FIBDatatset – SQLGenerator I
FIBDatatset – SQLGenerator II Erzeugen von Live-Querys I
FIBDatatset – SQLGenerator III Erzeugen von Live-Querys II
FIBDatatset – SQLGenerator IV Erzeugen von Live-Querys III
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));
FIBDatatset – Transaktionen I AutoCommit Automatische Transaktionsteuerung Bei Live-Querys poStartTransaction Start einer Transaktion beim Open
FIBDatatset – Transaktionen II Unterschiedliche Transaktionen für Lesen und Schreiben Verhinderung von Deadlocks WriteTransaction nach Post
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
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;
FIBDataSet – Arrays-Felder II with ArrayDataSet do begin SetArrayValue(FieldByName('LANGUAGE_REQ'), VarArrayOf([ Edit1.Text, Edit2.Text, Edit3.Text, Edit4.Text, Edit5.Text ])); end;
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
FIBQuery I
FIBQuery II - SQLGenerator
FIBQuery III Select pFIBQuery.ParamByName ( ‚PARAM_1' ).Value := Wer; pFIBQuery.Open; Insert | Update | Delete pFIBQuery.ParamByName ( ‚PARAM_1' ).Value := Wer; pFIBQuery.ExecQuery;
FIBStoredProc basiert auf FIB-Query , Erweiterungen zum einfachen Zugriff auf Stored Proceduren
Exception A:EFIBError ErrorCode : Exeptionhandling via Klasse EFIBError A:EFIBError ErrorCode : FLastErrorNum := A.IBErrorCode; ErrorMessage : FLastErrorMsg := A.Message; Unit : siehe FIB.SQL
FIBErrorHandler Applikationsweites Fehlerhandling procedure TDatamoduleFirebirdConnection.pFibErrorHandler1FIBErrorEvent ( Sender: TObject; ErrorValue: EFIBError; KindIBError: TKindIBError; var DoRaise: Boolean); begin ... end;
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;
Nutzerverwaltung - TpFIBSecurityService Bsp. : Das Anlegen eines Nutzers // --------------------------------------------------------------------------------------------- pFIBSecurityService.SecurityAction := ActionAddUser; pFIBSecurityService.FirstName := ‚Hermann‘; pFIBSecurityService.LastName := ‚Mustermann‘; pFIBSecurityService.UserName := ‚scott‘; pFIBSecurityService.Password := ‚tiger‘; pFIBSecurityService.AddUser;
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;
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.Active := true; pFIBRestoreService.ServiceStart; while pFIBRestoreService.IsServiceRunning do ; pFIBRestoreService.Active := false;
select * from TABLE1 where FIELD1=‚John‘ Macros Syntax : @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‘
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 ) http://www.devrace.com/en/fibplus/download/index.php?BID=19&ID=43
Tools IBExpert( Personal – Version ist frei ) http://www.ibexpert.com IBAdmin http://www.sqlly.com u.v.a. mehr -> www.interbasetools.de