|
|
|
Работа с кэшированными данными
|
|||
|---|---|---|---|
|
#18+
Ребят, может кто подскажет основные принципы (заповеди из личного опыта) работы с кэшированными данными - кто с какими проблемами сталкивался?. 1) Вот, например, нужно ли использовать транзакции при внесении изменений в записи (или добавлении записи) в базу (перед IBQuery.ApplyUpates)? вот пример из документации к IB (раздел Developers Guide / working with Cashed Updates): ... procedure TForm1.ApplyButtonClick(Sender: TObject) begin IBTransaction1.StartTransaction; CustomerQuery.ApplyUpdates; IBTransaction1.Commit; except IBTransaction1.Rollback; raise; end; CustomerQuery.CommitUpdates; end; ... Либо я плохо знаю Delphi - либо здесь не хватает "try"? Также ни у одного элемента IB Я не нашел - CommitUpdates :( у кого элемента есть CommitUpdates? 2) Все-б хорошо - но при внесении изменений в БД на одной из клиентских машин - на других клиентах никаких изменений сразу не отобразится, пока заново не произведешь Close/Open... как можно автоматизировать этот процесс? Может поставить на форму таймер? Пусть набор данных обновляется по времени?... хотя это както не логично... Всем заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 15:36 |
|
||
|
Работа с кэшированными данными
|
|||
|---|---|---|---|
|
#18+
На ibase.ru есть подборка статей на твои вопросы, специально для тебя пдобрали :-). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 15:54 |
|
||
|
Работа с кэшированными данными
|
|||
|---|---|---|---|
|
#18+
Обычно, лучшее решение для обновления инфы на клиентах - использовать SuperIBEventer (в IBPlus). Для этого надо только соответсвующие триггеры в базе прописать на изменение/вставку/удаление и все. Таким образом можно даже чаты делать :) З.Ы. у меня вся эта хрень работает под всеми виндами только окромя Win XP - там ивентер наотрез отказывается работать :( В чем косяк пока не разобрался ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2003, 06:55 |
|
||
|
Работа с кэшированными данными
|
|||
|---|---|---|---|
|
#18+
Привет! Код: plaintext 1. Чаты как задача еще туда-сюда, но обычные приложения в 99% случаев не нужно и вредно завязывать на использование Events и обновлений с сервера. Во-первых, события работают нестабильно в разных сетевых средах (2 сетевые карты, запреты портов, etc), во-вторых, логика клиент-серверных приложений должна стремиться к тому, что КЛИЕНТ запрашивает сервер о каких-то изменениях, а не СЕРВЕР сообщает клиенту. WBR, Alexey PS Чаты на базе Интербейз - редкий и особо извратный случай изобретения велосипеда, пригодный только для LAN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2003, 15:06 |
|
||
|
Работа с кэшированными данными
|
|||
|---|---|---|---|
|
#18+
Привет! Алексею Ковязину: >>логика клиент-серверных приложений должна стремиться к тому, что КЛИЕНТ запрашивает сервер о каких-то изменениях, а не СЕРВЕР сообщает клиенту А как КЛИЕНТ узнает, когда ему запрашивать изменения. Тем более если данные читаются 2-3 секунды... Мне, например, в большинстве программ нужно, чтобы у всех пользователей изменения других сразу же отображались (и желательно чтоб курсор в табличке не сдвигался). Все это работает на Events. А как по другому? Подскажите, очень интересно. З.Ы. предложения типа: запросы по таймеру или кнопочка "Обновить" - в данном случае вызывают оскомину... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 17:01 |
|
||
|
Работа с кэшированными данными
|
|||
|---|---|---|---|
|
#18+
На самом деле, это СЕРЬЕЗНАЯ проблема. Я хочу, чтобы у всех клиентов мгновенно обновлялись наборы данных (FIBDataSet). Как мне это сделать никак не могу придумать. Хотя есть один вариант - в триггере создавать событие на вставку, удаление или редактирование записи и событие передавать в приложение, там его ловить с помощью Eventera и вставлять через CacheAppend в DataSet. Только вот беда: КАК мне передать в событии КАКИЕ именно нужно записи редактировать???? Ведь в событии нельзя передать произвольный текст (к примеру с ID записи) - текст события статичен и должен быть заранее зарегистрирован клиентом. Получается я знаю что изменение произошло и что надо обновить, а что именно обновлять - как передать в клиент???? Если кто знает как решить эту проблему - РАССКАЖИТЕ ПОЖАЛУЙСТА) заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 14:50 |
|
||
|
|

start [/forum/topic.php?fid=40&tid=1580318]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 360ms |

| 0 / 0 |
