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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2007, 15:17   #1
vodila
Новичок
Джуниор
 
Регистрация: 10.08.2007
Сообщений: 2
Вопрос idudpserver+mssql+adodataset

Доброго времени суток всем!

Необходимо организовать рассылку сообщений всем клиентам работающим с приложением БД чтобы те обновили свои наборы данных при изменеиях в БД.
Создал на серверу расширенную процедуру Sendudpmessage;

на форме использую:
Tidudpserver
idudpserver.defaultport:=11245;
idudpserver.broadcastenable:=true;

TcxDBTreeList
adodataset1.commandtext:='select * from Table1';
datasource1.dataset := adodataset1;
cxDBTreeList.datasource:=datasource 1;

При изменении в БД Table1 срабатывает триггер: exec SENDUDPMESSAGE '1.0.0.255:11245', '1'

procedure TForm1.idudpserverudpread(sender:TO bject; Adata:TBytes; ABinding:TIdSocetHandle);
var
text: string;
begin
text:=bytestostring(adata);
if text='1' then
adodataset1.requery;
end;

Возникла проблема: Все работает только на той машине с которой производят изменеия в БД. На других машинах набор данных обновляется, но прорисовка cxDBTreeList1 происходит только после того, как проделать какие-нибудь манипуляции с формой(например вызвать другую форму).

Помогите разобраться. Спасибо
vodila вне форума Ответить с цитированием
Старый 11.08.2007, 09:56   #2
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от vodila Посмотреть сообщение
Доброго времени суток всем!

Необходимо организовать рассылку сообщений всем клиентам работающим с приложением БД чтобы те обновили свои наборы данных при изменеиях в БД.
Создал на серверу расширенную процедуру Sendudpmessage;

на форме использую:
Tidudpserver
idudpserver.defaultport:=11245;
idudpserver.broadcastenable:=true;

TcxDBTreeList
adodataset1.commandtext:='select * from Table1';
datasource1.dataset := adodataset1;
cxDBTreeList.datasource:=datasource 1;

При изменении в БД Table1 срабатывает триггер: exec SENDUDPMESSAGE '1.0.0.255:11245', '1'

procedure TForm1.idudpserverudpread(sender:TO bject; Adata:TBytes; ABinding:TIdSocetHandle);
var
text: string;
begin
text:=bytestostring(adata);
if text='1' then
adodataset1.requery;
end;

Возникла проблема: Все работает только на той машине с которой производят изменеия в БД. На других машинах набор данных обновляется, но прорисовка cxDBTreeList1 происходит только после того, как проделать какие-нибудь манипуляции с формой(например вызвать другую форму).

Помогите разобраться. Спасибо

Может нужно перерисовку формы сделать Form1.Repaint; после обновления adoDataSet1 ....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 проблемы: вставка в ADODataset и с ADOQuery Шани БД в Delphi 18 23.07.2008 20:38
IdUdpServer CrazyProgramer Работа с сетью в Delphi 9 21.07.2008 16:36
Ошибка в IdUDPServer Иллидан Работа с сетью в Delphi 1 24.02.2008 19:03
Не не знаю в чем проблема с IdUDPServer D@rk M@k Работа с сетью в Delphi 2 28.12.2007 15:46
ADODataSet: cannot modify a read-only dataset cvetochek Помощь студентам 2 29.10.2007 14:49