![]() |
Re: CRLab oder FIBPlus als BDE-Ersatz
Hallo,
auch wenn mschaefer die Werbetrommel rührt ;) ne, im ernst. ZEOS war für mich auch in der Pipeline. Nur : Es gibt bisher kein HardCommit, nur SoftCommits. Und das ZEOS-Team sagt, mal sehen, wenn Zeit ist. Wer jetzt sagt na und, hat die MGA Firebird nicht verstanden. Das Umstellen auf andere DB's kann man auch über bridge pattern machen. Heiko |
Re: CRLab oder FIBPlus als BDE-Ersatz
Ich verfolge den Thread hier schon ne weile, eine Frage am Rande (bin ja noch Azubi :mrgreen: ) was sind denn harte und softe Commits?
|
Re: CRLab oder FIBPlus als BDE-Ersatz
Bei harten Commits, wird die Transaktion richtig abgeschlossen, bei Softcommits werden die Änderungen zwar zurückgeschrieben aber nicht endgültig abgeschlossen (CommitRetaining)
|
Re: CRLab oder FIBPlus als BDE-Ersatz
ah, comprendo! :dp:
|
Re: CRLab oder FIBPlus als BDE-Ersatz
Hallo,
naja, das ist die technische Erklärung. Der Vorteil ist, eine SoftCommit ist schneller (auf Cleint-Seite) als ein hardcommit. Nun zum Problem damit. FB führt ja eine Liste der laufenden Transaktionen mit, bei softcommits bleibt die Transaktionsnummer gleich, die "Transaktionsmaske" auf dem Server wird immer grösser, weil FB immer alle aktiven Transaktionen im Auge behalten muss. -> der Speicherverbrauch wird immer grösser. Das äussert sich dann in solchen Sätzen wie "Mein Programm wird mit der Zeit immer langsamer, wenn der Server neu gestartet wird, geht es wieder ganz schnell, aber mit der Zeit wird es wieder langsam" Die Ursache können nat. auch lang laufende Transaktionen sein (jaja, in IB7 wurde zumindestens bei read-only was dagegen getan). Das ganze lässt sich schön bei Andreas Kosch nachlesen. Heiko |
Re: CRLab oder FIBPlus als BDE-Ersatz
Hi,
@Hansa Zitat:
Als beste Spezialisten würde ich Holger Klemt(IBExpert) oder Thomas Steinmaurer nennen. Bis zu denen fehlt mir noch eine ganze Menge. Aber trotzdem vielen Dank. :-D @Hagen Zitat:
Und "Schwer" ist in diesem Zusammenhang durchaus diplomatisch ausgedrückt. :-D Wir müssen mal wieder telefonieren. Jetzt zur Fragestellung: Gleich vorweg, CrLab habe ich nie getestet. Ich habe vorher mit IBO gearbeitet und kann mich da nur der Meinung von RavenIV anschließen. In Zeos, bitte mich zu korrigieren, ist nur eine Transaction pro Connection möglich. Damit kann man die Vorteile, die die Verwendung des Transactionmanagement bietet, nur eingeschränkt nutzen. FibPlus hingegen unterstützt die Arbeit mit Transaction. Z.B kann das FibDataSet zum Lesen und Schreiben unterschiedliche Transactionen verwenden. Vorteil: - schreibende Transactionen auf die Dauer des Scheibens begrenzt - Änderungen können Hard-Committet werden(schönes Denglish), während das Dataset weiter offen bleibt - lesende Transactionen laufen mit accessmode Readonly , damit wird die Last auf dem Server verringert. ![]() Eine weiter nützliche Sache ist die Unterstützung von Macros. Damit kann man sehr flexibel UND bequem Abfragen "von Hand" zusammenbauen. z.B.
SQL-Code:
select ID, NachName, Vorname, Typ from Person @@Filter@ @@Order@
Delphi-Quellcode:
Verwendet man die SQLMonitor von FibPlus, so werden die gesetzten Parameter ebenfalls protokolliert,
case AFiterArt of
1: begin dtsPerson.ParamByName('Filter').AsString := 'where NachName like :NachName'; dtsPerson.ParamByName('NachName').AsString := ANachName+'%'; end; 2: begin dtsPerson.ParamByName('Filter').AsString := 'where Typ = :Typ'; dtsPerson.ParamByName('Typ').AsInteger := ATyp; end; 3: begin dtsPerson.ParamByName('Filter').AsString := 'where Typ in (:Typen)'; dtsPerson.ParamByName('Typen').AsString := ATypenListe; end; else dtsPerson.ParamByName('Filter').Clear; // Nicht vergessen!! end; if AOrder <> '' then dtsPerson.ParamByName('order').AsString := AOrder else dtsPerson.ParamByName('order').Clear; // Nicht vergessen!! was bei der Fehlersuche sehr von Vorteil ist. Nicht zu vergessen ist auch die Möglichkeit der lokalen Sortierung im FibDataSet nach ein oder mehreren Feldern, ohne dass die Datenmenge nochmal vom Server mit einem geänderten "Order by.." geholt werden muss. Noch was zu der häufig erwähnten Möglichkeit, mit den gleichen Komponenten verschiedene Datenbanken ansprechen zu können (z.B. Zeos): Bisher kenne ich keinen Kunden (erst Einzelhandel, jetzt Pflegedienste), der mir vorgeschrieben hätte, welche Werkzeuge (Compiler/DBs) ich zur Erreichung der Funktionalität der Software verwenden soll. Wichtig ist nur das Ergebnis. Damit entscheide ich als Entwickler was sinnvoll ist und was nicht. Mir sind Komponenten die genau auf die Datenbank zugeschnitten und alle Funktionalitäten der DB unterstützen wichtiger, als die welche die nur den kleinsten gemeinsamen Nenner verschiedene DB bieten. Also, wenn jemand Komponenten für den Zugriff auf IB/FB sucht kann ich FibPlus nur empfehlen: -schnell -stabil -komfortabel -immer auf dem neuesten Stand der Entwicklung -guter Support -entsprechen dem Borland/CodeGear-Standard -gut dokumentiert -sind ihren Preis wert alex |
Re: CRLab oder FIBPlus als BDE-Ersatz
Hallo,
stuemmt, eine Transaction pro Connection, das hatte ich noch vergessen, zu erwähnen. Bei einer Umstellung Bde-ZEOS ist das sogar ganz nützlich: TDataBase.StartTransaction -> TZConnecon.StartTransaction Wenn man FB allerdings richtig ausreizen will, sind mehrere Transactionen pro Connection natürlich schön. Ein anderes nettes Feature ist das Wiederherstellen des Status, wenn mal die Verbindung weg war. Und mit Status sind auch offene Queries gemeint. Heiko |
Re: CRLab oder FIBPlus als BDE-Ersatz
Zitat:
mit CachedUpdates gearbeitet werden muss. Durch das Verlieren der Connection wird zwangsläufig auch die Transaktion beenden. Durch CachedUpdates bleibt die lokale Datenmenge trotz beendeter Transaktion offen und kann nach einem Reconnect weiter verwendet werden. Damals hat mich der Zusätzliche Aufwand der CachedUpdates abgeschreckt, so das ich mich nicht mehr darum gekümmert habe. Allerdings ist das schon eine ganze Weile her, gibt es in zwischen neue Erkenntnisse? alex |
Re: CRLab oder FIBPlus als BDE-Ersatz
Hallo,
ich meinte mit dem netten Feature FIBPlus, und so wie ich das gelesen habe, geht das automatisch. Heiko |
Re: CRLab oder FIBPlus als BDE-Ersatz
Zitat:
alex |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz