-
1. в потоке создается идентичное соединение с БД со всеми аттрибутами "основного", поток запускается 2. после отработки потока, recordSet потока клонируем, поток просим убиться -> 3. клонированный рекордсет остается без коннекта
Что если ему назначить новый коннект? Ничего не взорвется? (пока не взрывается, но вдруг)
onВернулисьИзПотока // RS и TAdoQueryTH(Sender).RS типа adoint.recordSet if TAdoQueryTH(Sender).RS <> nil then RS := TAdoQueryTH(Sender).RS.Clone(1);
TAdoQueryTH(Sender).Terminate;
RS.Set_ActiveConnection(Database.ConnectionObject);
-
а смысл, выполнять в потоке и передавать результат в основную? пытаешься велосипед асинхронного получения данных сделать? так есть это, стандартно, галочку только в adodataset поставить и все.
-
да, знаю, ExecuteOption и давно хочу переделать, но просто .. это много придется переделывать, пока быстрее поддерживать такое
ну так, как думаешь, рванет или нет?
-
сам по себе адошный рекордсет потоконезависим, "рванут" могут только твои действия с ним, например если захочешь что то подредактировать, изменить в нем. лучше передавая оставь его оторванным от коннекта.
|