Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2011, 20:16   #1
crazyPr0ger
Новичок
Джуниор
 
Регистрация: 24.07.2011
Сообщений: 8
По умолчанию отображение длительного процесса

используется MIDAS
на стороне сервера TPROVIDERDATASET ADODATASET ADOCONNECTION
на стороне клиента TClientdataset и DCOMConnection
база данных ACCESS
Клиенты подключаются к серверу через DCOMConnection
Клиенты могут работать автономно и потом отправлять изменения на сервер

Изменения отправляются методом TClientDataSet.ApplyUpdates
При отправке изменений нужно повесить TAnimate для отбображения длительного обращения к базе данных
КАК ЭТО СДЕЛАТЬ?
crazyPr0ger вне форума Ответить с цитированием
Старый 24.07.2011, 20:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Отправляй изменения в отдельном потоке, а в главном запускай анимацию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.07.2011, 04:56   #3
crazyPr0ger
Новичок
Джуниор
 
Регистрация: 24.07.2011
Сообщений: 8
По умолчанию

Реализовал передачу обновлений данных в БД в отдельном потоке.
Работает прекрасно, но после попытки получения обновленных данных с сервера,
(например при вызове 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;
В чем может быть трабл?

У нас принято оформлять код специальным тегом. Кнопка #. Модератор

Последний раз редактировалось dr.Chas; 26.07.2011 в 23:09.
crazyPr0ger вне форума Ответить с цитированием
Старый 25.07.2011, 04:58   #4
crazyPr0ger
Новичок
Джуниор
 
Регистрация: 24.07.2011
Сообщений: 8
По умолчанию

В одном из форумов был совет использовать новое подключение для потока.
у кого какое мнение есть ?
crazyPr0ger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение пути к файлу процесса Stipower Общие вопросы Delphi 4 08.05.2019 15:22
Приоритет процесса P@SH@ Win Api 9 13.05.2014 21:48
Запуск процесса в потоке, завершение процесса в указааноое время, Дайте совет Человек_Борща Общие вопросы Delphi 3 29.08.2010 12:58
Отображение скрытых файлов и папок и отображение розширения всех файлов beegl Общие вопросы Delphi 10 14.12.2008 22:02
ID процесса ben95 Общие вопросы Delphi 1 22.01.2008 19:43