Discussion:
Mehrere Threads eine Datenbanktabelle
(zu alt für eine Antwort)
Matthias Frey
2012-07-06 09:57:25 UTC
Permalink
Hallo,
ist es möglich aus einer Delphi-Applikation aus mehrere Threads
auf eine Tabelle zuzugreifen und dort Datensätze hinzuzufügen.

Falls ja, mit welchen Datenbanken geht so etwas?
Ich nehme an, dann benötigt jeder Thread eine eigene Connection.
Richtig?

Matthias
Arno Garrels
2012-07-06 16:06:24 UTC
Permalink
Post by Matthias Frey
Hallo,
ist es möglich aus einer Delphi-Applikation aus mehrere Threads
auf eine Tabelle zuzugreifen und dort Datensätze hinzuzufügen.
Falls ja, mit welchen Datenbanken geht so etwas?
Mit den Datenbanken, die ich bisher benutzt habe funktioniert das.
Post by Matthias Frey
Ich nehme an, dann benötigt jeder Thread eine eigene Connection.
Richtig?
Eine Connection per Thread sollte natürlich immer funktionieren.
Die BDE und andere benötig(t)en z.B. für jeden Thread ein eigenes
Session-Objekt, im Zweifel immer die Hilfe der DB konsultieren.
Ob überhaupt und ggf. wann Multi-Threading (mehrere DB-Verbindungen)
einen Performance-Gewinn bringt kann ich nicht beantworten, hat
mich bisher noch nie interessiert.
--
Arno Garrels
Matthias Frey
2012-07-06 16:24:09 UTC
Permalink
Post by Arno Garrels
Post by Matthias Frey
Hallo,
ist es möglich aus einer Delphi-Applikation aus mehrere Threads
auf eine Tabelle zuzugreifen und dort Datensätze hinzuzufügen.
Falls ja, mit welchen Datenbanken geht so etwas?
Mit den Datenbanken, die ich bisher benutzt habe funktioniert das.
Welche waren das?
Post by Arno Garrels
Post by Matthias Frey
Ich nehme an, dann benötigt jeder Thread eine eigene Connection.
Richtig?
Eine Connection per Thread sollte natürlich immer funktionieren.
Die BDE und andere benötig(t)en z.B. für jeden Thread ein eigenes
Session-Objekt, im Zweifel immer die Hilfe der DB konsultieren.
Die BDE ist zum Glück kein Thema.
Post by Arno Garrels
Ob überhaupt und ggf. wann Multi-Threading (mehrere DB-Verbindungen)
einen Performance-Gewinn bringt kann ich nicht beantworten, hat
mich bisher noch nie interessiert.
Es geht nicht um Performance (sondern um mehere Maschinen die
Ergebnisse in eine Datenbank bringen).

Danke - auch an Stefan

Matthias
Arno Garrels
2012-07-08 12:29:55 UTC
Permalink
Post by Matthias Frey
Post by Arno Garrels
Post by Matthias Frey
Hallo,
ist es möglich aus einer Delphi-Applikation aus mehrere Threads
auf eine Tabelle zuzugreifen und dort Datensätze hinzuzufügen.
Falls ja, mit welchen Datenbanken geht so etwas?
Mit den Datenbanken, die ich bisher benutzt habe funktioniert das.
Welche waren das?
Mit Firebird, DBISAM, AbsoluteDB und der BDE/Paradox hab ich
schon von mehreren Threads auf die selben Tabellen zugriffen, an die
Details kann ich mich aber nicht mehr erinneren.
Deshalb habe das gerade nochmal mit DBISAM getestet, Transaktionen
werden z.B. mit DBISAM serialisiert, der Aufruf von DB.StartTransaction
kehrt erst zurück, wenn sich kein anderer Thread in einer Transaktion
befindet.
--
Arno Garrels
Stefan Graf
2012-07-06 16:03:42 UTC
Permalink
Post by Matthias Frey
Hallo,
ist es möglich aus einer Delphi-Applikation aus mehrere Threads
auf eine Tabelle zuzugreifen und dort Datensätze hinzuzufügen.
Falls ja, mit welchen Datenbanken geht so etwas?
Ich nehme an, dann benötigt jeder Thread eine eigene Connection.
Richtig?
Genau, daher auch darauf achten, dass man damit keine Deadlooks baut.
Bei Änderung immer mit Transaktionen arbeiten.
--
Stefan Graf
Lesen Sie weiter auf narkive:
Loading...