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

  • View
    166

  • Download
    11

Embed Size (px)

Text of Delphi & FIBPlus Firebird und InterBase mit Delphi und FIBPlus DL33 | IB4

  • Folie 1
  • Delphi & FIBPlus Firebird und InterBase mit Delphi und FIBPlus DL33 | IB4
  • Folie 2
  • 1 Was ist FIBPlus Komponenten zum nativen Zugriff auf Interbase und Firebird Alternative zu IBX mit Untersttzung des Open-Source RDBMS Firebird Verfgbar fr Delphi ( 3-7 ), C++-Builder (5-6 ) und Kylix 3 Untersttzt Interbase 4-7.x und Firebird 1.x
  • Folie 3
  • 2 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
  • Folie 4
  • 3 Komponenten I TpFIBDatabaseTpFIBDataSet TpFIBTransactionTpFIBQuery TpFIBStoredProcTpFIBUpdateObject TDataSetsContainerTpFibErrorHandler TpFIBStatisticTSIBfibEventAlerter TFIBSQLMonitorTpFIBClientDataSet TpFIBDataSetProvider
  • Folie 5
  • 4 Komponenten II TpFIBServerPropertiesTpFIBConfigService TpFIBLicensigServiceTpFIBLogService TpFIBStatisticalServiceTpFIBBackupService TpFIBRestoreServiceTpFIBValidationService TpFIBSecurityServiceTpFIBInstall TpFIBUnInstall
  • Folie 6
  • 5 Zugriff auf InterBase & FireBird Anwendung fbclient.dllgds32.dll FirebirdInterbase
  • Folie 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]
  • Folie 8
  • 7 FIBDatabase I
  • Folie 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;
  • Folie 10
  • 9 FIBDatatset SQLGenerator I
  • Folie 11
  • 10 FIBDatatset SQLGenerator II Erzeugen von Live-Querys I
  • Folie 12
  • 11 FIBDatatset SQLGenerator III Erzeugen von Live-Querys II
  • Folie 13
  • 12 FIBDatatset SQLGenerator IV Erzeugen von Live-Querys III
  • Folie 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));
  • Folie 15
  • 14 FIBDatatset Transaktionen I AutoCommit Automatische Transaktionsteuerung Bei Live-Querys poStartTransaction Start einer Transaktion beim Open
  • Folie 16
  • 15 FIBDatatset Transaktionen II Unterschiedliche Transaktionen fr Lesen und Schreiben Verhinderung von Deadlocks WriteTransaction nach Post
  • Folie 17
  • 16 FIBDataSet Master /Detail Im Detail-DataSet mssen einige Eigenschaft gesetzt werden dcForceOpen = Detail-DataSet wird nach ffnen des Master-DataSets ebenfalls geffnet dcForceMasterRefresh = wird der Cursor in einem Master-DataSet gendert, wird automatisch das Detail- DataSet neu geffnet
  • Folie 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;
  • Folie 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;
  • Folie 20
  • 19 FIBDataSetContainer Zentrale Behandlung von Ereignissen fr alle TpFIBDatasets, Events werden gedoppelt. OnDataSetEvent = Ereignis eines TpFIBDateset ( Bsp. if Event = deOnNewRecord then... ) OnUserEvent = Durch Programm definertes Ereignis
  • Folie 21
  • 20 FIBQuery I
  • Folie 22
  • 21 FIBQuery II - SQLGenerator
  • Folie 23
  • 22 FIBQuery III Select pFIBQuery.ParamByName ( PARAM_1' ).Value := Wer; pFIBQuery.Open; Insert | Update | Delete pFIBQuery.ParamByName ( PARAM_1' ).Value := Wer; pFIBQuery.ExecQuery;
  • Folie 24
  • 23 FIBStoredProc basiert auf FIB-Query, Erweiterungen zum einfachen Zugriff auf Stored Proceduren
  • Folie 25
  • 24 Exception Exeptionhandling via Klasse EFIBError A:EFIBError ErrorCode : FLastErrorNum := A.IBErrorCode; ErrorMessage : FLastErrorMsg := A.Message; Unit : siehe FIB.SQL
  • Folie 26
  • 25 FIBErrorHandler Applikationsweites Fehlerhandling procedure TDatamoduleFirebirdConnection.pFibErrorHandler1FIBErrorEvent ( Sender: TObject; ErrorValue: EFIBError; KindIBError: TKindIBError; var DoRaise: Boolean); begin... end;
  • Folie 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;
  • Folie 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; // ---------------------------------------------------------------------------------------------
  • Folie 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; // ---------------------------------------------------------------------------------------------
  • Folie 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; // ---------------------------------------------------------------------------------------------
  • Folie 31
  • 30 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
  • Folie 32
  • 31 verfgbare Erweiterungen gd_DataSetsComponenten DataSet-Ableitungen auf Basis von FIBPlus ( und IBX ) fr die Verarbeitung groe Datenmengen pFIBExtract Extraktion von Metadaten in ein SQL-Skript pFIBScript Sriptkomponente ( Funktionalitt entspricht IBX-Skriptkomponente ) http://www.devrace.com/en/fibplus/download/index.php?BID=19&ID=43
  • Folie 33
  • 32 Tools IBExpert( Personal Version ist frei ) http://www.ibexpert.com IBAdmin http://www.sqlly.com http://www.sqlly.com u.v.a. mehr -> www.interbasetools.de