Компонент TSimpleDataSet обеспечивает кэширование полученных данных и сделанных изменений на стороне клиента и последующую передачу их на сервер для фиксации. В отличие от компонента TClientDataSet, основным назначением которого является обслуживание набора данных, полученного от удаленного сервера при помощи серверных компонентов DataSnap, компонент TSimpleDataSet призван быть лишь средством редактирования набора данных в технологии dbExpress.
Компонент использует двунаправленный курсор и позволяет редактировать данные, правда только в режиме кэширования (см. гл. 22).
Таким образом, компонент TSimpleDataSet позволяет исправить основные недостатки технологии dbExpress.
Для подключения к источнику данных компонент использует свойство
property DBConnection: TSQLConnection;
которое позволяет связать его с соединением TSQLConnection (см. выше). или свойство
property ConnectionName: string;
которое позволяет выбрать тип соединения dbExpress напрямую.
При этом у компонента отсутствует механизм создания удаленного доступа к данным, представленный у компонента TclientDataSet свойствами RemoteServer И ProviderName.
После создания соединения с сервером БД можно определить тип используемой команды, подобно компоненту TSQLDataSet.
Тип команды определяется свойством
TSQLCommandType = (ctQuery, ctTable, ctStoredProc);
property CommandType: TSQLCommandType;
А содержание команды задает свойство
property CoinmandText: string;
После этого компонент можно связывать с компонентами отображения данных, просматривать и редактировать данные.
Для передачи на сервер сделанных и сохраненных в локальном кэше изменений используется метод
function ApplyUpdates(MaxErrors: Integer); Integer; virtual;
где параметр MaxErrors определяет максимально возможное число ошибок при сохранении. Обычно этому параметру присваивается -1, что снимает ограничение на число ошибок. Метод
function Reconcile(const Results: OleVariant): Boolean;
очищает локальный кэш компонента от записей, которые успешно сохранены на сервере.