В моем программном обеспечении есть следующая структура DBX:
TSQLDataSet -> TDataSetProvider -> TClientDataSet
В одном из полей моего TClientDataSet свойство Required установлено в значение false, поскольку это поле автоматически увеличивается на основе триггеров и генераторов в базе данных (Firebird).
Однако после настройки как TSQLDataSet, так и TClientDataSet с этим полем не требуется, я получаю очень странные результаты, когда пытаюсь прочитать это поле из моего TClientDataSet. Я подозреваю, что мне может потребоваться сделать что-то дополнительное, чтобы заставить мой TClientDataSet получить значение этого поля в этом состоянии.
Что мне здесь не хватает?
Заранее спасибо.
EDIT
Файл справки для свойства Required говорит кое-что об этом, но я не совсем понял, чего он от меня хочет.
Описание
Указывает, является ли непустое значение для поля
требуется.
Используйте Требуется, чтобы узнать, требует ли поле значение или поле
может быть пустым
Если поле создается с помощью редактора полей, это свойство устанавливается
на основе базовой таблицы. Приложения, для которых для параметра Required установлено значение true
для полей, которые должны иметь значения (например, пароль или часть
номер), но для которого базовая таблица не требует
поле, должно написать обработчик события OnValidate для принудительного применения свойства.
Когда свойство Required отражает свойство базового
таблица базы данных, попытка публикации применить нулевое значение вызывает исключение
быть воспитанным. Приложения, которые устанавливают для свойства Required значение true, когда
базовая таблица не требует поля, должна поднять
Исключение EDatabaseError для нулевых значений в событии OnValidate
обработчик для достижения того же результата.
РЕДАКТИРОВАТЬ 2
Забыл упомянуть: между TDataSetProvider и TClientDataSet существует слой DataSnap (соединение TClientDataSet выполняется с драйвером DataSnap).
РЕДАКТИРОВАТЬ 3
Я создал небольшой тестовый набор с этой настройкой DataSnap, и он отлично работал. Проект старый, грязный, и я предполагаю, что либо у меня настроен какой-то неясный вариант, который меня кусает, либо я наткнулся на ошибку DataSnap.