Delphi. FireDAC. Автоінкрементні поля
FireDAC підтримує вставку нового запису через автоінкрементну колонку та отримання нового значення цієї колонки. Цей механізм допомагає негайному оновленню, так само як для cached updates. Залежно від DBMS, автоінкрементні поля можуть використовуватися через спеціальну ідентифікаційну колонку або через генератор і табличний тригер. Далі, у документації наводиться така таблиця.

Автоматичне розпізнавання
FireDAC автоматично розпізнає колонку з автоінкрементом та визначає її в dtIntXxx [caAutoInc, caReadOnly, caAllowNull]. Це допомагає налаштуваннюTField
- включений режим extended metadata;
- таблиця має BEFORE INSERT trigger;
- тригер залежить від окремої колонки та окремого генератора. Ця колонка розпізнається як автоінкрементна.
Автоінкремент на клієнті
За промовчанням FireDAC використовує автоінкрементні поля клієнта. Після виклику методів Insert/Append, автоінкреметна колонка отримає значення -1. З кожним наступним викликом значення отримає ще одне значення -1.
Коли UpdateOptions.RefreshMode <> rmManual, після “постингу” нового запису автоінкрементна колонка набуде позитивного значення.
Властивості TFDAutoIncField дозволяють настроїти автоінкремент на клієнта
Універсальне налаштування
Наступне налаштування автоінкрементне буде працювати з будь-якою DBMS
-КолиpfInUpdateце значення TField.ProviderFlags, автоінкремент виключається з INSERT / UPDATE виразів
-Коли FetchOptions.Items поставлені вfiMeta,колонка розпізнається як авто-інкрементна
Для Oracle, Firebird, IB необхідно вручну налаштовувати автоінкрементні колонки. Для DBMS, які підтримують автоінкрементні поля ніякихдодаткові дії не потрібні.