Ich möchte den Zugriff auf eine Interbase-Datenbank über Funktionen einer DLL realisieren (dynamischer Import), die intern mittels IBX auf die Datenbank zugreift. Es zeigt sich, daß nach Herstellung der Verbindung zum DB-Server (Property Connected der TIBDataBase-Instanz auf True gesetzt), man die DLL mittels FreeLibrary nicht mehr entladen kann. Ursache könnte sein, daß beim Setzen von Connected := True von ??? zwei Threads erzeugt werden, die etwa bei Connected := False oder Aufruf von ForceClose nicht terminiert werden (zumindest wird dem DLL-Handler keine entsprechende Meldung übergeben - DLL_Thread_Detach).
Auffällig erscheint noch das unterschiedliche Verhalten in Abhängigkeit des angesprochenen IB-Servers. Beim Local Server kann die DLL wenigstens noch mit Beendigung des die DLL ladenden Programmes (automatisch) entladen werden, beim Remote Server muß bereits die Verbindungsherstellung in eine Critical Section gepackt werden, der Versuch des "automatischen" Entladens bei Programmbeendigung muß mit der Reset-Taste bezahlt werden.
Auffällig erscheint noch das unterschiedliche Verhalten in Abhängigkeit des angesprochenen IB-Servers. Beim Local Server kann die DLL wenigstens noch mit Beendigung des die DLL ladenden Programmes (automatisch) entladen werden, beim Remote Server muß bereits die Verbindungsherstellung in eine Critical Section gepackt werden, der Versuch des "automatischen" Entladens bei Programmbeendigung muß mit der Reset-Taste bezahlt werden.
Comment