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

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

TTable->TDataSetProvider->TClientDataSet [D5, dBase, FoxPro]


Sectey ©   (2003-07-03 08:58:00) 

Добрый день.
У меня в проекте есть цепочка TTable->TDataSetProvider->TClientDataSet. Все работает нормально пока не делаешь ClientDataSet.ApplyUpdates. Тут и начинаются чудеса. Существуют ли какие либо правила, организации таких цепочек? Заранее благодарен всем.


witchka   (2003-07-15 16:21:00) [1]

Спасибо за помощь! все оказалось значительно проще :) Как я и предполагала - ошибка была в ДНК :))) Когда у меня все-таки ничего не получилось, я написала тестовый пример с теми параметрами. На этапе создания SQL-запросов для pFIBDataSet (они не захотели генериться автоматически) я поняла, что в прошлый раз ошиблась с рефреш-запросом - просто согласилась с предложенным, а он обновлял только те записи, которые уже были в наборе данных, в то время как я тестировала приложение на момент добавления новых записей! :))) В общем, глупо, конечно... Но зато узнала много нового. :) Выводы: никаких дополнительных интерфейсов и коммитов, pFIBTransactions с TimeOutAction=TACommit и Options: write, rec_version, nowait, read_committed. Все работает! :)
Еще раз - спасибо!


BorisUK   (2003-07-04 08:34:00) [2]

witchka (03.07.03 19:50)
Твоя проблема и не проблема вовсе :)
Просто делай что то типа pFIBTransaction.Commit;
Хотя я и не работаю именно с этими компонентами...

Решение в общем такое... Надо посылать с сервера приложений команду "Закомитить данные в СУБД"
Поставь выполнение комита на AfterUpdates (или как там свойство будет называться у твоиз FIB компонентов) в RDM на сервере приложений...

Возможно даже лучше будет делать так...
Создать дополнительные методы в интерфейсе твоего сервера скажем Сommit и Rollback и вызывай их в зависимости от того что надо Подтвердить или откатить изменения...

Все зависит от постановки задачи...
Удачи!


witchka   (2003-07-03 19:50:00) [3]

Я уже 2 недели ищу ответ на похожий вопрос. Буду очень благодарна за ссылку на какой-либо содержательный хелп.
Проблема в следующем:
1. Серверная часть- MTS Data Module содержит компоненты pFIBDataBase, pFIBDataset c двумя транзакциями на чтение и запись pFIBTransaction с TimeoutAction "TACommit" и TDataSetProvider.
2. На клиенте- TClientDataset. ApplyUpdates(-1) - возвращает 1 = все нормально, делаю рефреш клиентскому датасету - и никаких изменений не видно. В базу изменения заносятся только после закрытия клиентского приложения.
Я подозреваю, что где-то напортачила с транзакциями. Не знаю, где вызвать метод SetComplete.
Это мой первый проект с MIDAS, MTS, FireBird и FIBPlus library.
Жутко стыдно, но сама разобраться не могу.
Все, что описано в "Основы MIDAS" по этому поводу (ссылка выше) - я сегодня попробовала - у меня не работает.


Romkin   (2003-07-03 10:37:00) [4]

Применяешь TTable - поставь у провайдера ResolveToDataset = true
и не мучайся


Alex_***   (2003-07-03 10:35:00) [5]

Связка не нарушена? Должно работать,там ничего сложного нет. Попробуй на простой табличке протестировать. Кстати режим однопользовательский?


Sectey   (2003-07-03 09:34:00) [6]

>Alex_***
1.ОШИБКА -> Unable ro resolve records. Table name not found.
2.Изменяет но при этом изменив поле в одной записи он изменяет значени данного поля во всех записях


Соловьев   (2003-07-03 09:33:00) [7]

http://olegmotov.h1.ru/articles/inprisemidas/title.htm


BorisUK   (2003-07-03 09:32:00) [8]

... если ч чудесами то наверно так...
Повернись на стуле по часовой стрелки восемь раз и сплюнь через левое плечо на клавиатуру...
Потом произнеси молитву...


Johnmen   (2003-07-03 09:22:00) [9]

>Sectey ©

В чем смысл применения данной цепи ?


Alex_***   (2003-07-03 09:16:00) [10]

Чудеса... И как ты представляешь себе ответ? Как бороться с чудесами? - Читать хелп. Что конкретно происходит?


Наверх

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