При использовании TFDMetaInfoQuery с MetaDataType для mtTableFields в документации говорится, что необходимо преобразовать возвращаемое поле Column_Attributes в тип TFDDataAttributes для проверки атрибутов конкретного поля, таких как необязательные (caAllowNull) и caReadOnly. Как именно это сделано? Рассмотрим следующий сегмент кода, который возвращает таблицу данных, касающихся полей MyTable:
var
FieldAttributes: TFDDataAttributes;
Required: Boolean;
begin
FDMetaInfoQuery1.MetaInfoKind := mkTableFields;
FDMetaInfoQuery1.Open('MyTable');
for i := 0 to FDMetaInfoQuery1.RecordCount -1 do
begin
FieldAttributes := TFDDataAttributes(FDMetaInfoQuery1.FieldByName('Column_Attributes').AsExtended);
// test for particular TFDDataAttribute flags in the TFDDataAttributes set
// ie, if not ( caAllowNull in FieldAttributes ) then // flag column as required
end;
Строка, приводящая столбец Column_Attributes, генерирует ошибку компилятора неверного типа. Я попытался получить поля Column_Attributes как вариант и несколько других типов, но я продолжаю получать ту же ошибку. Кстати, тип данных столбца Column_Attributes - dtUInt32. Справка FireDAC говорит: «Приведите значение в FireDAC.Stan.Intf.TFDDataAttributes.»
Предложения