Данная статья посвящена установке значений для полей, по умолчанию. Она основана на официальной документации
Обработчик OnNewRecord
В Delphi стандартным путем для ассоциирования значений по умолчанию является OnNewRecord. Он запускается сразу после того как автоинкрементные записи и записи из вспомогательных таблиц получают свои значения. Обработчик может переписать эти значения, используя свою логику. Обработчик может быть ассоциирован с датасетом в любое время.
Установка значения по умолчанию
Можно воспользоваться свойством TField.DefaultExpression. Выражение будет оценено один раз как вызов Insert / Append и ассоциировано как значение по умолчанию. Позже, это значение может быть переписано приложением. Когда у поля тип TField.FieldKind = fkInternalCalc, тогда DefaultExpression будет использовано, чтобы калькулировать поле.
Если значение назначено полю DefaultExpression тогда когда dataset закрыт, тогда оно будет актуализировано автоматически. Когда датасет открыт – вызовите метод UpdateAttributes, чтобы актуализировать изменения. Например
1 2 3 4 |
FDQuery1.Open; ... FDQuery1.FieldByName('ObjGUID').DefaultExpression := 'NEWGUID()'; FDQuery1.UpdateAttributes; |
FireDAC не “фетчит”, то есть не получает значения по умолчанию из словаря БД. Наиболее простой путь – сделать это – ассоциировать выражtние через FieldsEditor в design-time