AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi dbExpress Transaktionsmanagement (und Firebird)
Thema durchsuchen
Ansicht
Themen-Optionen

dbExpress Transaktionsmanagement (und Firebird)

Ein Thema von RSE · begonnen am 26. Jun 2012 · letzter Beitrag vom 3. Jul 2012
Antwort Antwort
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#1

dbExpress Transaktionsmanagement (und Firebird)

  Alt 26. Jun 2012, 16:04
Datenbank: Firebird • Version: 2.5 • Zugriff über: dbExpress
Hallo,

ich arbeite mich gerade neu in dbExpress unter Delphi XE ein. Dort habe ich in der Hilfe zu RollbackFreeAndNil gelesen:
Zitat:
Alle aktiven Transaktionen, die nach dieser Transaktion begonnen wurden, werden auch zurückgesetzt und freigegeben.
Das simuliert ja quasi verschachtelte Transaktionen (die äußere Transaktion kann nur glücken, wenn alle innenern Transaktionen glücken). Falls der Server aber tatsächlich verschachtelte Transaktionen nativ unterstützt, würde ich das ja bestimmt auch irgendwie mitbekommen - ist da nicht irgendwas doppelt gemoppelt?
Das es verschachtelte Transaktionen überhaupt gibt, war mir bisher gar nicht in den Sinn gekommen. Ich war immer der Meinung, dass zwei nacheinander gestartete Transaktionen vollkommen unabhängig voneinander sind.
  1. Wie läuft das zwischen dbExpress und Firebird mit diesen "geschachtelten Transaktionen" tatsächlich?
  2. Wie startet man mit dbExpress 2 unabhängige Transaktionen? Geht das nur über einzelne Verbindungen? Ist Firebird bzgl. der Verbindungen pro Client begrenzt?
Falls es zu den Fragen bereits Antworten gibt, die ich nicht gefunden habe, dann bitte ich um einen Link und bin sehr gerne bereit mir diesen zu Gemüte zu führen. Leider ergab meine vorher durchgeführte Suche allerdings keine brauchbaren Ergebnisse. Vielleicht benutze ich aus Unkenntnis nicht die richtigen Suchwörter.

OT: Was mich außerdem noch etwas stört an dbExpress ist das automatische Verbinden zum Server, wenn ich die Query öffne. Kann man das irgendwie abstellen? Ich hätte lieber einen auswertbaren Hinweis/Fehler wie bei TIBDatabase möglich. Oder bin ich mit den Anforderungen (Firebird + Verbindungs- und Transaktionsmanagement selbst in die Hand nehmen) mit den IB-Komponenten besser beraten?
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#2

AW: dbExpress Transaktionsmanagement (und Firebird)

  Alt 27. Jun 2012, 12:36
Ich hab mich mit dbExpress nie wirklich ernsthaft auseinandergesetzt, aber durch den unidirektionalen/disconnected Ansatz, wo man in die TClientDataSet Schiene kommt, um z.B. ein Grid anzubinden, ist doch etwas Umstellung notwendig, wenn man andere Zugriffskomponenten gewohnt ist. Wenn mich nicht alles täuscht, geht auch nur eine explizite Transaktion je Connection. Das alles sind keine konkreten Antworten, aber wenn dein Projekt etwas neues ist und du nur Firebird unterstützen musst, dann gehe in Richtung IBObjects, IBDAC, FIBPlus ... Wenn du Multi-DB Support benötigst, dann in Richtung AnyDAC oder UniDAC. Mit all diesen Produkten holt man einfach mehr raus.
  Mit Zitat antworten Zitat
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#3

AW: dbExpress Transaktionsmanagement (und Firebird)

  Alt 27. Jun 2012, 17:12
Ja, das Projekt ist neu. Ja, Firebird ist vorerst das einzige DBMS, das unterstützt werden muss. Wir wollen allerdings von externen Komponenten Abstand nehmen und das Ganze mit Bordmitteln umsetzen. Damit bleiben wohl dbExpress und die Interbase-Komponenten, wenn ich das richtig überblicke. Die Interbase-Komponenten scheinen mir hier weniger "Hexerei" zu betreiben, di ich nicht haben will. Mit ClientDataSet habe ich mich bereits auseinandergesetzt und ich finde den Ansatz gut.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: dbExpress Transaktionsmanagement (und Firebird)

  Alt 27. Jun 2012, 17:14
Zitat:
Ja, das Projekt ist neu. Ja, Firebird ist vorerst das einzige DBMS, das unterstützt werden muss. Wir wollen allerdings von externen Komponenten Abstand nehmen und das Ganze mit Bordmitteln umsetzen.
Gibt es hierfür einen Grund?
Markus Kinzler
  Mit Zitat antworten Zitat
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#5

AW: dbExpress Transaktionsmanagement (und Firebird)

  Alt 27. Jun 2012, 17:25
Zitat:
Ja, das Projekt ist neu. Ja, Firebird ist vorerst das einzige DBMS, das unterstützt werden muss. Wir wollen allerdings von externen Komponenten Abstand nehmen und das Ganze mit Bordmitteln umsetzen.
Gibt es hierfür einen Grund?
"Sparsamkeit" der Geschäftsleitung. Allerdings bin ich bei ersten Tests mit den IB-Kompos sehr gut zurechtgekommen. dbExpress hat zu diesem Thread geführt. Ihr könnt mir gern triftige Gründe aufführen, wenn ihr mich überzeugen könnt, könnte ich vielleicht noch was daran ändern, aber dann müssen triftige Gründe kommen.

Die Originalkomponenten haben in unseren Augen folgende Vorteile:
  • Gut getestet
  • Entwicklung/Unterstützung wird nicht unerwartet eingestellt werden (auf dbExpress sicher mehr zutreffend als auf die IB-Kompos?)
  • Keine zusätzlichen Kosten
Die gleichen Gründe sprechen gegen Fremdkomponenten. Die IBOs hatten wir z.B. bisher im Einsatz, sind uns aber zu teuer.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: dbExpress Transaktionsmanagement (und Firebird)

  Alt 27. Jun 2012, 17:29
Für dbExpress bräuchtest du aber dann auch die Enterprise von Delphi oder einen 3rd-Party/Freeware dbExpress-Treiber.
Markus Kinzler
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: dbExpress Transaktionsmanagement (und Firebird)

  Alt 28. Jun 2012, 08:29
"Sparsamkeit" der Geschäftsleitung. Allerdings bin ich bei ersten Tests mit den IB-Kompos sehr gut zurechtgekommen. dbExpress hat zu diesem Thread geführt. Ihr könnt mir gern triftige Gründe aufführen, wenn ihr mich überzeugen könnt, könnte ich vielleicht noch was daran ändern, aber dann müssen triftige Gründe kommen.
Es ist natürlich wichtig, kostenoptimiert zu arbeiten. Gerade deshalb lohnt der Einsatz von professionellen Third Party Components.

Die Zeit, die ihr für das Entwickeln mit 'Bordmitteln' benötigt, bzw. bei der Erweiterung, wenn doch mal ein zweites RDBMS hinzukommt, kostet Geld.

Die Evaluation und der Kauf einer guten Komponente kostet auch Geld.

Preisfrage: Was ist teurer?

Wir haben z.B. DevExpress (Visualisierung, Eingabe, Grids etc.), FastReport(Reporting) und TSiLang (Lokalisierung, Multilanguage) eingekauft, einfach weil wir Front-End Anwendungen mit Datenanzeige, -Eingabe, Reporting für Kunden im In- und Ausland entwickeln.

Wir konzentrieren uns auf die Kernproblematik, weil wir für das notwendige Gerüst (Grids, Reports, Sprachumstellung) bereits fertige Lösungen haben.

Die Entwicklungskosten für o.g. Produkte bzw. die für uns relevante Funktionalität beträgt grob geschätzt 5-10 Mannjahre. Ausgegeben haben wir nur einen Bruchteil => Gute Investition.

Ich würde übrigens eher Fremdkomponenten kaufen (sofern sie nicht zu teuer sind), als Dinge von vorne herein selbst zu entwickeln. Ich hab die Zeit dafür einfach nicht. Wenn man als GF entscheidet, alles selbst zu machen, hat man schlichtweg zu viel Geld.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz