Wenn eine Variable nicht erfasst werden kann, dann mit einer TempVariable dazwischen arbeiten.
Mit Owner meinte ich das so
Delphi-Quellcode:
oQuery := TFDQuery.Create(nil); // in der Methode mit Try-Except gesichert und danach wird DateSnap der Owner des Result
oConn := TFDConnection.Create(oQuery); // die FDQuery übernimmt die Kontrolle der Freigabe
Hier kommt doch nur noch ConnectionDefName von außerhalb.
Alles Andere ist intern und wäre somit threadsave.
Wenn der Wert ConnectionDefName aus einem String kommt (die sind beim Lesen threadsave, solange es keine externen Änderungen gibt), dann geht das auch so,
ansonsten müsste man eigentlich nur noch diesen Zugriff absichern.