Ich werfe auch noch kurz 3 Aspekte in die Runde...
Bei
ADO/dbGo muss jeder Thread, der auf die
DB zugreift eine eigene TADOConnection haben.
Sonst funktioniert das Connection Pooling nicht.
Jeder Thread der
ADO nutzt muss sein eigenes CoInitialize aufrufen.
Je nach Anwendung würde ich abwägen, ob ich
COM ggf. als MULTITHREADED initialisiere.
Das läuft oft runder, wenn dein Programm nicht auf
OLE, Clipboard oder Shell Dialoge zugreift.