Проблема с Clientdataset

Тема в разделе "Delphi - Базы данных", создана пользователем pashAkka, 14 ноя 2005.

Статус темы:
Закрыта.
  1. pashAkka

    pashAkka Гость

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

    Изучаю трехуровневую архитектуру. Написал пока простенькое приложение с такой структурой:

    ASA 8 <-> ADO <-> Сервер приложения (удаленный модуль данных) <-> Socket-соединение <-> Тонкий клиент.

    На тонком клиенте используются компоненты ClientDataSet.

    Ситуация такая:
    - делаю изменения на стороне тонкого клиента,
    - потом вызываю ApplyUpdates(0) компонента ClientDataSet,
    - изменения отображаются и у клиента и в базе данных,
    но стоит мне вызвать Close, а потом Open у ClientDataSet, то этих обновлений не видно!

    Также происходит, если я например напрямую в базе ручками что-то поменяю, то у клиента этих изменений не видно, причем не помогает ни UpdateCursorPos, ни Resync([]), ни Refresh. Помогает только перевход в программу.

    Вот фрагмент кода с комментариями:
    Код (Text):
     // вносим изменения в CDS и применяим их
    ClientDataSet1.ApplyUpdates(0);
    // тут изменения видны как у клиента, так и в БД

    ClientDataSet1.UpdateCursorPos;
    ClientDataSet1.Resync([]);
    // после этого тоже видны (взято из примера, но смысла не пойму, т.к.
    // видимых изменений не происходит)

    ClientDataSet1.Close;

    ClientDataSet1.Open;
    // вот тут уже изменеий нет, видим то, что было до модификации!

    // становимся на модифицированную запись и выполняем следующие
    // комманды
    ClientDataSet1.RefreshRecord;
    ClientDataSet1.UpdateCursorPos;
    ClientDataSet1.Resync([]);
    // результата нет, запись остается в старом виде :(
    Если кто имел дело с этим, может поможете. Кстати проверил это без сервера приложений, с локальным модулем данных - вышла такая же ситуация.

    Заранее спасибо за ответы
     
  2. pashAkka

    pashAkka Гость

    Огромное всем спасибо за ответы! :)

    Почитал умные книжки и разобрался сам. :(

    Оказывается, интерфейс IAppServer, наследником которого является интерфейс, который реализует мой удаленный модуль данных, имеет тип stateless. Поэтому каждый раз, перед вызовом метода AS_GetRecords, нужно обновлять набор данных клиента.
     
Загрузка...
Похожие Темы - Проблема Clientdataset
  1. AgniXRudra
    Ответов:
    0
    Просмотров:
    0
  2. Zloikaktus
    Ответов:
    0
    Просмотров:
    12
  3. c0de3r
    Ответов:
    5
    Просмотров:
    134
  4. DobermannTT
    Ответов:
    10
    Просмотров:
    139
  5. SoulPaladin
    Ответов:
    4
    Просмотров:
    135
Статус темы:
Закрыта.

Поделиться этой страницей