как из clientdataset изменить данные на сервере?
Модератор: kdv
-
- Сообщения: 5
- Зарегистрирован: 27 май 2006, 16:57
как из clientdataset изменить данные на сервере?
пишу обычную трехзвенку, использую ibdatabase, ibtransaction, provider, socket, clientdataset. сохраняю на клиенте с помощью applyupdate. после дисконнекта все измененные данные пропадают. заранее прошу извинить, поскольку это первый опыт
www.ibase.ru/devinfo/ibx.htm
см. про транзакции.
см. про транзакции.
-
- Сообщения: 5
- Зарегистрирован: 27 май 2006, 16:57
Читал про транзакции
Читал про транзакции, делаю как написано, в свойствах транзакции указываю read_commited, write. Но почему то данные все равно не сохраняются.
И нигде не могу найти реального примера как можно сделать Commit транзакции. Насколько я понимаю, нужно делать коммит после applyupdates на клиенте. А как это сделать я не знаю.
Пожалуйста подскажите, было бы здорово, если бы показали пример.
И нигде не могу найти реального примера как можно сделать Commit транзакции. Насколько я понимаю, нужно делать коммит после applyupdates на клиенте. А как это сделать я не знаю.
Пожалуйста подскажите, было бы здорово, если бы показали пример.
-
- Сообщения: 5
- Зарегистрирован: 27 май 2006, 16:57
В примере не показано как это должно работать на трехзвенной модели.
Насколько я понимаю, то при вызове ApplyUpdates на клиенте должно автоматически делать и ApplyUpdates на TDatasetProvider, что и должно сохранить данные в сервере.
Но у меня такое не работает. Как заставить сервер сохранить данные?
В IBDataset прописаны все запросы, все ссылки расставлены.
Если нетрудно, объясните, что нужно сделать на сервере и какие события использовать.
Насколько я понимаю, то при вызове ApplyUpdates на клиенте должно автоматически делать и ApplyUpdates на TDatasetProvider, что и должно сохранить данные в сервере.
Но у меня такое не работает. Как заставить сервер сохранить данные?
В IBDataset прописаны все запросы, все ссылки расставлены.
Если нетрудно, объясните, что нужно сделать на сервере и какие события использовать.
-
- Сообщения: 5
- Зарегистрирован: 27 май 2006, 16:57
TIBClientDataset не подходит для трехзвенки
IBClientDataSet is a client dataset that uses an internal TIBDataSet and TDataSetProvider for fetching data and applying updates. It allows you to cache updates fetched using InterBase Expres without using an external provider and client dataset....
так что вот так... грустно.
А клиент датасет как раз создан специально для трехзвенной структуры. Только вот как дать серверу понять что нужно сделать коммит???
так что вот так... грустно.
А клиент датасет как раз создан специально для трехзвенной структуры. Только вот как дать серверу понять что нужно сделать коммит???
я ж тебе объяснил - если НЕТ этого компонента в комплекте, значит все должно работать нормально. И намекнул на более свежую версию IBX.
Если ты читаешь readme к ibx, то тебе надо было это прочитать:
"IBClientDataset is depreciated like the corresponding
SQLClientDataset and the BDEClientDataset. It is no
longer installed by default."
Так что я не понимаю, где грустно. Кроме того, IBClientDataSet есть в исходниках, там же. В крайнем случае для управления транзакциями с клиента создаешь методы у сервера, и вызываешь их с клиента...
Если ты читаешь readme к ibx, то тебе надо было это прочитать:
"IBClientDataset is depreciated like the corresponding
SQLClientDataset and the BDEClientDataset. It is no
longer installed by default."
Так что я не понимаю, где грустно. Кроме того, IBClientDataSet есть в исходниках, там же. В крайнем случае для управления транзакциями с клиента создаешь методы у сервера, и вызываешь их с клиента...
Ну и наконец - на www.ibase.ru, в разделе документация, есть туча ссылок по специфике clientdataset. и есть ссылка на статью по работе с IBX и ClientDataSet. И к ней есть большой пример. Попробуй.
-
- Сообщения: 5
- Зарегистрирован: 27 май 2006, 16:57
Спасибо :))
Спасибо
обязательно посмотрю еще раз все материалы по теме.
Только вот мне непонятно, как IBClientDataset можно подцепить к SocketConnection, ну в общем с удаленным сервером.

Только вот мне непонятно, как IBClientDataset можно подцепить к SocketConnection, ну в общем с удаленным сервером.