|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вызов ApplyUpdate в отдельном потоке
Реализовал передачу обновлений данных в БД в отдельном потоке.
Работает прекрасно, но после попытки получения обновленных данных с сервера, (например при вызове TClientDataSet.Open) Появилась ошибка EOLEException «Объект не подключен к серверу». Приложение теряет сервер. (Access+ADO+ProviderDataset---DCOMConnection-----ClientDataset) (MIDAS Application) Запускается модальная форма с прогрессбарами и в ней вызывается поток: procedure TNewThread.Execute; var i:integer; begin inherited; CoInitialize(nil); Synchronize(SetProgress); MessageText:='Пожалуйста, дождитесь окончания запроса в базу данных.'; Dm.cdsPersonal.ApplyUpdates(-1); Synchronize(SetProgress); ///обновление прогрессбара …………………………………………////здесь ApplyUpdates других таблиц БД Synchronize(SetEnd); //здесь обновление содержимого формы CoUninitialize(); end; Теперь приходится перезапускать приложение после обновления данных на сервер в БД. В чем может быть трабл? |