Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Delphi и MS SQL [D6, D7, MSSQL]


Maniacosaur ©   (2003-10-24 09:31:00) 

Проблема в следующем. Имеется ADOConnection, ADOTable, DataSource, DBGrid ну и естественно форма :-)
Как сделать, чтобы при обновлении данных на сервере происходило обновление данных в DBGrid. Если в свойствах ADOTable поставить CursorLocation=clUseServer и CursorType=ctDynamic, то DBGrid вываливается с сообщением "Dataset does not support bookmarks, wich are required for multi-record data controls." Как штатными средствами обойти эти грабли?


Delirium   (2003-10-24 16:01:00) [1]

http://delphibase.endimus.com/?action=viewfunc&topic=basemssql&id=10474


sniknik   (2003-10-24 13:16:00) [2]

me (24.10.03 12:48) [17]
точно. значит это был не глюк. ;о))


Fiend   (2003-10-24 13:04:00) [3]

То sniknik:
во-во, я про него и говорил


me   (2003-10-24 12:48:00) [4]

Microsoft SQL Server Notification Services


Delirium   (2003-10-24 12:29:00) [5]

Если уж делать, то лучше не по Named Pipes, а широковещательно по UDP ...


sniknik   (2003-10-24 12:24:00) [6]

б%# чегото совсем не ищется ;о(, глюки у меня тогда были чтоли?.

Maniacosaur © (24.10.03 12:04) [14]
> Плохо
не так уж и плохо если захотеть решить можно, ссылка
http://home.earthlink.net/~akonshin/delphi_ru.htm
см. MS SQL Alerterможеш также сделать.
(другое дело а нужно ли? мне вот не пригодилось хотя этот пример пробовал и на всякий случай ссылку оставил)


Maniacosaur   (2003-10-24 12:04:00) [7]

Плохо


KSergey   (2003-10-24 11:42:00) [8]

Ловить оповещения об изменении от сервера
Только так.


Maniacosaur   (2003-10-24 11:38:00) [9]

Все равно грид не рефрешится. Хотелось бы красиво сделать, а не запускать поток, чтобы тот периодически обновлял данные.


paul_k   (2003-10-24 11:35:00) [10]

2 sniknik ©
Направление куда копать понял.
спасибо


sniknik   (2003-10-24 11:32:00) [11]

paul_k © (24.10.03 11:27) [9]
не в хелпе а на сайте майкософта, просто статьи читал там и попалось. но вот точно к сожалению сказать не могу. (и пока не нахожу)


paul_k   (2003-10-24 11:27:00) [12]


> sniknik © (24.10.03 11:09) [7]
> уже давно видел стандартный оповешатель в MSSQL

А не можете ли подсказать куда в нелпе смотреть?


Denis   (2003-10-24 11:15:00) [13]

Возможно, это будет кстати:

http://www.delphikingdom.com/helloworld/ado01.htm


sniknik   (2003-10-24 11:09:00) [14]

Fiend © (24.10.03 10:51) [4]
> штатными никак!
уже давно видел стандартный оповешатель в MSSQL (служба доставляется, правда не пользовался и не помню как оно называется, если оченьнужно могу поискать, но думаю ктонибудь раньше меня положит)
еще можно так (через ж%#у но штатно, и ничего не нужно доставлять)
exec master..xp_cmdshell "net send client "сделай рефреш!!!"", NO_OUTPUT

Maniacosaur © (24.10.03 10:54) [5]
> А что же тогда делают CursorLocation и CursorType?
грубо это расположение данных, если серверный курсор то они на сервере но для того чтобы их отразить на клиенте их все одно нужно на него перекачивать. (и даже если на сервере они динамически поменялись, то на клиенте все одно об этом не знают)


Плохиш_   (2003-10-24 11:06:00) [15]

>Maniacosaur © (24.10.03 10:54) [5]

А что в хелпе не написано?


Maniacosaur   (2003-10-24 10:54:00) [16]

А что же тогда делают CursorLocation и CursorType?


Fiend   (2003-10-24 10:51:00) [17]

штатными никак!
Можно воспользоваться компонентами Alex Konshin
MS SQL Alert. будешь посылать сообщения от сервера клиенту.


Vlad   (2003-10-24 10:48:00) [18]

>Maniacosaur © (24.10.03 10:44) [2]
Если в базе кто-то меняет значения, значит надо почаще кнопку Рефреш нажимать. Либо делать рефреш автоматически, в потоке, каждые N секунд.


Maniacosaur   (2003-10-24 10:44:00) [19]

В этом варианте CursorType не принимает других значений кроме ctStatic. Соответственно, если в базе кто то меняет таблицу, то новые значения в грид не попадают. А чтобы попали -- нужно провести ряд манипуляций.


bushmen   (2003-10-24 09:38:00) [20]

CursorLocation=clUseClient


Наверх

Титульная страница Поиск, карта сайта Написать письмо