Verstehe von dem Thema nicht wirklich was, aber was mich verwundert:
Wenn der Thread fertig ist, weist Du Datasource die VirtualTable zu und dem Grid dann DataSource.
Das kann ich nachvollziehen, allerdings hätte ich erwartet, dass vor dem Start des Thread eben gerade diese Verbindung aufgehoben wird.
Ich würd' hier also erwarten, dass nach dem ersten Threadstarten für die restliche Laufzeit des Programmes die Verbindung VirtualTable->DataSource->Grid bestehen bleibt.
Allerdings hatte ich die bisherige Anforderung so verstanden, dass eben genau das nicht der Fall sein soll.
Dashier verstehe ich nicht:
Delphi-Quellcode:
try
try
FUniDacSQLQuery.Execute;
// Must be set here otherwise the virtualtable in the main thread
// does not contain any data!
FVirtualTable.Assign(FUniDacSQLQuery);
except
FUniDacSQLQuery.Close;
FUniDacConnection.Close;
terminate;
end;
Execute nimmt man bei 'ner
Query doch eigentlich, wenn man keine Ergebnismenge erwartet, also bei Insert, Update ...
Müsste es bei 'nem Select noch Open heißen.
Bei 'nem Execute ist doch eigentlich auch kein Close erforderlich.
Oder ist das hier in diesem Zusammenhang anders?