Einzelnen Beitrag anzeigen

rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#1

FireDAC und Fehler: Verbindung mit "hstmt" belegt

  Alt 30. Aug 2016, 10:23
Datenbank: MS SQL • Version: div • Zugriff über: FireDAC / ODBC
Hallo zusammen,

seid Delphi 10 habe ich begonnen, meine Datenbankanwendungen nicht mehr mit BDE (die ganz alten) oder dbGo, also ADO, zu entwickeln, sondern ich verwende FireDAC via ODBC auf SQL Server. Das ist im Prinzip ganz schön; aber ich habe nach wie vor, wenn ich nicht aufpasse, die Fehlermeldung:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt TEST.exe ist eine Exception der Klasse EODBCNativeException mit der Meldung '[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]Die Verbindung ist mit Ergebnissen von einem anderen hstmt belegt' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------


In der Hilfe zu FireDAC habe ich gelesen, dass es sich bei der Meldung darum handelt, dass 2 (oder mehrere) TFDQuery auf EINER TFDConnection GLEICHZEITIG geöffnet werden sollen. Und das ist auch wohl so. Wenn man darauf achtet, die 2 TFDQuery nacheinander zu öffnen, ist alles gut und die Meldung kommt nicht. Nur das geht oft nicht immer nacheinander, weil ich aus 2 Abfragen die Ergebnisse gleichzeitig benötige.

Nun lege ich mehrere TFDConnection zu ein und derselben DB an, damit ich mehrere TFDQuery gleichzeitig öffnen kann.

Früher (BDE / ADO) habe ich immer EINE Connection pro DB gehabt und die benötigte Anzahl an Querys mit der einen Connection verbunden.

Und hier kommt nun meine Frage: Ist das eigentlich richtig so? Öffnet Ihr unter FireDAC auch mehrere Conncetions, wenn Ihr gleichzeitig mehrere Querys zu einer DB benötigt?

Danke für Eure Tipps und Anregungen.

Gruß
Rolf
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat