Любой способ узнать, какое TField вызывает EDBClient с сообщением "Требуется значение поля".?
-
06-07-2019 - |
Вопрос
У меня есть один TClientDataSet с несколькими полями, и я получаю это исключение, я уверен, что забыл установить значение одного поля, но вопрос в том, какое поле?
Есть ли какой-нибудь способ быстро выяснить, какое поле вызывает это исключение?
Редактировать
Я решил проблему, я подключал TClientDataSet не к тому провайдеру, у которого было обязательное поле на сервере, но не было этого поля на клиенте.
Но это все равно не отменяет мой вопрос, я потерял много времени, чтобы разобраться в нем, и если бы у меня был какой-то способ узнать, какое обязательное поле на стороне сервера вызывало эту ошибку, я бы очень быстро понял, в чем была моя ошибка.
ПРАВКА 2
Связанные QCS:
#5557 - Решается так, "Как задумано".
#54380 - Открыть
Решение
Когда отладчик уведомит вас об исключении, посмотрите на стек вызовов.Перейдите к процедуре, которая выполняет итерацию по списку полей, и проверьте переменную управления циклом в этот момент, чтобы узнать, как далеко продвинулась ваша программа по списку полей, прежде чем вызвать исключение.
Если переменная, управляющая циклом, неверна, установите точку останова в этой процедуре и повторно запустите свою программу.Выполняйте эти действия до тех пор, пока снова не получите исключение.
Другой вариант - просмотреть все поля и самому убедиться, в каком из них отсутствует значение.