Я использую DBEXPRESS подключения к различным базам данных (в основном MSSQL, Sybase SQL) с:FireDAC эквивалент DBEXPRESS портфель модели
SQLConnection -> SQLDataSet -> DataSetProvider -> ClientDataSet.
Мне нужно подключиться к базам данных таким образом, чтобы они не записывали изменения обратно в таблицы.
Итак, DataSetProvider имеет ResolveToDataSet: = false, а ClientDataSet имеет LogChanges: = false (для производительности).
При использовании я подключаю SQLConnection, открываю ClientDataSet и закрываю SQLConnection.
Затем я могу манипулировать ClientDataSet, не опасаясь изменить базовую таблицу.
Я новичок в FireDAC (XE8), и я ищу, чтобы установить такой же сценарий - загружать данные в память из SQL-запроса и безопасно манипулировать этими данными в памяти без случайного обновления исходной таблицы (с).
настоящее время я использую: FDConnection -> FDQuery и FDMemTable
FDQuery имеет CachedUpdates: = True и я выполняю:
FDQ.Open;
FDQ.FetchAll;
FDMemT.CloneCursor(FDQ,true,false);
FDQ.Close;
Я думаю это довольно много эквивалент - Я получаю данные в FDMemTable, так что редактирование данных не сможет «записывать обратно» в таблицы.
Еще одна проблема - в сценарии dbExpress я часто добавляю поля InternalCalc в ClientDataSet. Мне не ясно, что я могу это сделать (и иметь постоянные имена полей), если я выполняю операцию CloneCursor.
Есть ли более простой способ обеспечения того, чтобы данные никогда не обновляли базу данных? Установка FDQuery в режим «только для чтения» не работает - мне часто приходится изменять записи (но не пытайтесь сохранять эти изменения).
TIA.
EdB
Просто используйте FDQuery с CachedUpdates = True –
@ да-мягкие Благодарности - моя естественная паранойя не позволил мне принять это было бы так просто. Есть ли эквивалент «LogChanges: = false», который может повлиять на производительность? – edbored
Прочитайте это: [Работа в автономном режиме] (http://docwiki.embarcadero.com/RADStudio/Seattle/en/Offlining_Connection_%28FireDAC%29), [Кэширование обновлений] (http://docwiki.embarcadero.com/RADStudio/Seattle/ен/Caching_Updates_% 28FireDAC% 29) –