Thema: Delphi dbExpress und Threads

Einzelnen Beitrag anzeigen

Basic-Master

Registriert seit: 9. Mär 2003
Ort: Brilon
395 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: dbExpress und Threads

  Alt 3. Nov 2008, 21:28
Habe doch noch was in der Hilfe gefunden, vielleicht hilft es ja noch jemandem. dbExpress ist nur dann thread-safe, wenn auch die Treiber-Bibliothek thread-safe ist. Bei MySQL muss man sich dann u. U. ein entsprechendes Binary besorgen, da man es optional als thread-safe kompilieren kann (ob die MySQL DLLs standardmäßig thread-safe sind kann ich aber nicht sagen). Bei MSSQL gilt: Vorher coinitialize() in jedem Thread aufrufen wie es hier beschrieben ist.

Hier der Auszug aus der CodeGear Online-Hilfe:
Zitat:
Datenzugriffskomponente

Datenzugriffskomponenten sind in folgender Hinsicht thread-sicher: Bei BDE-gestützten Datenmengen muss jeder Thread über seine eigene Sitzungskomponente verfügen. Die einzige Ausnahme stellen Microsoft-Access-Treiber dar, die eine Microsoft-Bibliothek verwenden, die nicht thread-sicher ist. Für dbExpress gilt: Solange die Client-Bibliothek thread-sicher ist, sind dies auch die dbExpress-Komponenten. ADO- und InterBaseExpress-Komponenten sind thread-sicher.
Auch bei der Verwendung von Datenzugriffskomponenten müssen alle Aufrufe, die sich auf datensensitive Steuerelemente beziehen, in der Methode Synchronize gekapselt werden. Beispielsweise müssen alle Aufrufe gekapselt werden, die ein Datensteuerelement über die Eigenschaft DataSet der Datenquelle mit einer Datenmenge verknüpfen. Dagegen braucht der Zugriff auf die Daten in einem Feld der Datenmenge nicht gekapselt zu werden.
Weitere Informationen zu Datenbanksitzungen im Zusammenspiel mit Threads in BDE-gestützten Anwendungen finden Sie unter Mehrere Sitzungen verwalten.
Christian
  Mit Zitat antworten Zitat